Compare commits
12 Commits
docs/minor
...
chore/code
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e7b18e820e | ||
|
|
87a5bab734 | ||
|
|
fa61bb660e | ||
|
|
83dd079e03 | ||
|
|
f7933d8a4d | ||
|
|
4bd0cfd283 | ||
|
|
86f39f3824 | ||
|
|
94216f5219 | ||
|
|
a2e6187dae | ||
|
|
15e3926ce4 | ||
|
|
ab26af19b8 | ||
|
|
dc512600dc |
126
CODE_OF_CONDUCT.md
Normal file
126
CODE_OF_CONDUCT.md
Normal file
@@ -0,0 +1,126 @@
|
|||||||
|
# Contributor Covenant Code of Conduct
|
||||||
|
|
||||||
|
## Our Pledge
|
||||||
|
|
||||||
|
We as members, contributors, and leaders pledge to make participation in our
|
||||||
|
community a harassment-free experience for everyone, regardless of age, body
|
||||||
|
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||||
|
identity and expression, level of experience, education, socio-economic status,
|
||||||
|
nationality, personal appearance, race, caste, color, religion, or sexual
|
||||||
|
identity and orientation.
|
||||||
|
|
||||||
|
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||||
|
diverse, inclusive, and healthy community.
|
||||||
|
|
||||||
|
## Our Standards
|
||||||
|
|
||||||
|
Examples of behavior that contributes to a positive environment for our
|
||||||
|
community include:
|
||||||
|
|
||||||
|
- Demonstrating empathy and kindness toward other people
|
||||||
|
- Being respectful of differing opinions, viewpoints, and experiences
|
||||||
|
- Giving and gracefully accepting constructive feedback
|
||||||
|
- Accepting responsibility and apologizing to those affected by our mistakes,
|
||||||
|
and learning from the experience
|
||||||
|
- Focusing on what is best not just for us as individuals, but for the overall
|
||||||
|
community
|
||||||
|
|
||||||
|
Examples of unacceptable behavior include:
|
||||||
|
|
||||||
|
- The use of sexualized language or imagery, and sexual attention or advances of
|
||||||
|
any kind
|
||||||
|
- Trolling, insulting or derogatory comments, and personal or political attacks
|
||||||
|
- Public or private harassment
|
||||||
|
- Publishing others' private information, such as a physical or email address,
|
||||||
|
without their explicit permission
|
||||||
|
- Other conduct which could reasonably be considered inappropriate in a
|
||||||
|
professional setting
|
||||||
|
|
||||||
|
## Enforcement Responsibilities
|
||||||
|
|
||||||
|
Community leaders are responsible for clarifying and enforcing our standards of
|
||||||
|
acceptable behavior and will take appropriate and fair corrective action in
|
||||||
|
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||||
|
or harmful.
|
||||||
|
|
||||||
|
Community leaders have the right and responsibility to remove, edit, or reject
|
||||||
|
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||||
|
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||||
|
decisions when appropriate.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
This Code of Conduct applies within all community spaces, and also applies when
|
||||||
|
an individual is officially representing the community in public spaces.
|
||||||
|
Examples of representing our community include using an official e-mail address,
|
||||||
|
posting via an official social media account, or acting as an appointed
|
||||||
|
representative at an online or offline event.
|
||||||
|
|
||||||
|
## Enforcement
|
||||||
|
|
||||||
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||||
|
reported to the community leaders responsible for enforcement at
|
||||||
|
support@documenso.com.
|
||||||
|
All complaints will be reviewed and investigated promptly and fairly.
|
||||||
|
|
||||||
|
All community leaders are obligated to respect the privacy and security of the
|
||||||
|
reporter of any incident.
|
||||||
|
|
||||||
|
## Enforcement Guidelines
|
||||||
|
|
||||||
|
Community leaders will follow these Community Impact Guidelines in determining
|
||||||
|
the consequences for any action they deem in violation of this Code of Conduct:
|
||||||
|
|
||||||
|
### 1. Correction
|
||||||
|
|
||||||
|
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||||
|
unprofessional or unwelcome in the community.
|
||||||
|
|
||||||
|
**Consequence**: A private, written warning from community leaders, providing
|
||||||
|
clarity around the nature of the violation and an explanation of why the
|
||||||
|
behavior was inappropriate. A public apology may be requested.
|
||||||
|
|
||||||
|
### 2. Warning
|
||||||
|
|
||||||
|
**Community Impact**: A violation through a single incident or series of
|
||||||
|
actions.
|
||||||
|
|
||||||
|
**Consequence**: A warning with consequences for continued behavior. No
|
||||||
|
interaction with the people involved, including unsolicited interaction with
|
||||||
|
those enforcing the Code of Conduct, for a specified period of time. This
|
||||||
|
includes avoiding interactions in community spaces as well as external channels
|
||||||
|
like social media. Violating these terms may lead to a temporary or permanent
|
||||||
|
ban.
|
||||||
|
|
||||||
|
### 3. Temporary Ban
|
||||||
|
|
||||||
|
**Community Impact**: A serious violation of community standards, including
|
||||||
|
sustained inappropriate behavior.
|
||||||
|
|
||||||
|
**Consequence**: A temporary ban from any sort of interaction or public
|
||||||
|
communication with the community for a specified period of time. No public or
|
||||||
|
private interaction with the people involved, including unsolicited interaction
|
||||||
|
with those enforcing the Code of Conduct, is allowed during this period.
|
||||||
|
Violating these terms may lead to a permanent ban.
|
||||||
|
|
||||||
|
### 4. Permanent Ban
|
||||||
|
|
||||||
|
**Community Impact**: Demonstrating a pattern of violation of community
|
||||||
|
standards, including sustained inappropriate behavior, harassment of an
|
||||||
|
individual, or aggression toward or disparagement of classes of individuals.
|
||||||
|
|
||||||
|
**Consequence**: A permanent ban from any sort of public interaction within the
|
||||||
|
community.
|
||||||
|
|
||||||
|
## Attribution
|
||||||
|
|
||||||
|
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||||
|
version 2.1, available at
|
||||||
|
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
|
||||||
|
|
||||||
|
Community Impact Guidelines were inspired by
|
||||||
|
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
|
||||||
|
|
||||||
|
For answers to common questions about this code of conduct, see the FAQ at
|
||||||
|
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
|
||||||
|
[https://www.contributor-covenant.org/translations][translations].
|
||||||
@@ -9,6 +9,22 @@ If you plan to contribute to Documenso, please take a moment to feel awesome ✨
|
|||||||
- Consider the results from the discussion in the issue
|
- Consider the results from the discussion in the issue
|
||||||
- Accept the [Contributor License Agreement](https://documen.so/cla) to ensure we can accept your contributions.
|
- Accept the [Contributor License Agreement](https://documen.so/cla) to ensure we can accept your contributions.
|
||||||
|
|
||||||
|
## Taking issues
|
||||||
|
|
||||||
|
Before taking an issue, ensure that:
|
||||||
|
|
||||||
|
- The issue has been assigned the public label
|
||||||
|
- The issue is clearly defined and understood
|
||||||
|
- No one has been assigned to the issue
|
||||||
|
- No one has expressed intention to work on it
|
||||||
|
|
||||||
|
You can then:
|
||||||
|
|
||||||
|
1. Comment on the issue with your intention to work on it
|
||||||
|
2. Begin work on the issue
|
||||||
|
|
||||||
|
Always feel free to ask questions or seek clarification on the issue.
|
||||||
|
|
||||||
## Developing
|
## Developing
|
||||||
|
|
||||||
The development branch is <code>main</code>. All pull request should be made against this branch. If you need help getting started, [join us on Discord](https://documen.so/discord).
|
The development branch is <code>main</code>. All pull request should be made against this branch. If you need help getting started, [join us on Discord](https://documen.so/discord).
|
||||||
|
|||||||
20
README.md
20
README.md
@@ -27,6 +27,7 @@
|
|||||||
<a href="https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/documenso/documenso">
|
<a href="https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/documenso/documenso">
|
||||||
<img alt="open in devcontainer" src="https://img.shields.io/static/v1?label=Dev%20Containers&message=Enabled&color=blue&logo=visualstudiocode" />
|
<img alt="open in devcontainer" src="https://img.shields.io/static/v1?label=Dev%20Containers&message=Enabled&color=blue&logo=visualstudiocode" />
|
||||||
</a>
|
</a>
|
||||||
|
<a href="code_of_conduct.md"><img src="https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg" alt="Contributor Covenant"></a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
> 🦺 Documenso 1.0 is deployed to our <a href="https://documen.so/staging" target="_blank">Staging Environment</a>.
|
> 🦺 Documenso 1.0 is deployed to our <a href="https://documen.so/staging" target="_blank">Staging Environment</a>.
|
||||||
@@ -130,14 +131,12 @@ git clone https://github.com/documenso/documenso
|
|||||||
|
|
||||||
2. Set up your `.env` file using the recommendations in the `.env.example` file. Alternatively just run `cp .env.example .env` to get started with our handpicked defaults.
|
2. Set up your `.env` file using the recommendations in the `.env.example` file. Alternatively just run `cp .env.example .env` to get started with our handpicked defaults.
|
||||||
|
|
||||||
|
|
||||||
3. Run `npm run dx` in the root directory
|
3. Run `npm run dx` in the root directory
|
||||||
|
|
||||||
- This will spin up a postgres database and inbucket mailserver in a docker container.
|
- This will spin up a postgres database and inbucket mailserver in a docker container.
|
||||||
|
|
||||||
4. Run `npm run dev` in the root directory
|
4. Run `npm run dev` in the root directory
|
||||||
|
|
||||||
|
|
||||||
5. Want it even faster? Just use
|
5. Want it even faster? Just use
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
@@ -170,14 +169,15 @@ git clone https://github.com/documenso/documenso
|
|||||||
3. Create your `.env` from the `.env.example`. You can use `cp .env.example .env` to get started with our handpicked defaults.
|
3. Create your `.env` from the `.env.example`. You can use `cp .env.example .env` to get started with our handpicked defaults.
|
||||||
|
|
||||||
4. Set the following environement variables.
|
4. Set the following environement variables.
|
||||||
- NEXTAUTH_URL
|
|
||||||
- NEXTAUTH_SECRET
|
- NEXTAUTH_URL
|
||||||
- NEXT_PUBLIC_WEBAPP_URL
|
- NEXTAUTH_SECRET
|
||||||
- NEXT_PUBLIC_MARKETING_URL
|
- NEXT_PUBLIC_WEBAPP_URL
|
||||||
- NEXT_PRIVATE_DATABASE_URL
|
- NEXT_PUBLIC_MARKETING_URL
|
||||||
- NEXT_PRIVATE_DIRECT_DATABASE_URL
|
- NEXT_PRIVATE_DATABASE_URL
|
||||||
- NEXT_PRIVATE_SMTP_FROM_NAME
|
- NEXT_PRIVATE_DIRECT_DATABASE_URL
|
||||||
- NEXT_PRIVATE_SMTP_FROM_ADDRESS
|
- NEXT_PRIVATE_SMTP_FROM_NAME
|
||||||
|
- NEXT_PRIVATE_SMTP_FROM_ADDRESS
|
||||||
|
|
||||||
5. Create the database schema by running `npm run prisma:migrate-dev -w @documenso/prisma`
|
5. Create the database schema by running `npm run prisma:migrate-dev -w @documenso/prisma`
|
||||||
|
|
||||||
|
|||||||
@@ -23,22 +23,6 @@ export const TEAM_MEMBERS = [
|
|||||||
engagement: 'Part-Time',
|
engagement: 'Part-Time',
|
||||||
joinDate: 'June 6th, 2023',
|
joinDate: 'June 6th, 2023',
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name: 'Florent Merian',
|
|
||||||
role: 'Marketer - III',
|
|
||||||
salary: 'Project-Based',
|
|
||||||
location: 'France',
|
|
||||||
engagement: 'Full-Time',
|
|
||||||
joinDate: 'July 10th, 2023',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'Thilo Konzok',
|
|
||||||
role: 'Designer',
|
|
||||||
salary: 'Project-Based',
|
|
||||||
location: 'Germany',
|
|
||||||
engagement: 'Full-Time',
|
|
||||||
joinDate: 'April 26th, 2023',
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: 'David Nguyen',
|
name: 'David Nguyen',
|
||||||
role: 'Software Engineer - III',
|
role: 'Software Engineer - III',
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ export const ForgotPasswordForm = ({ className }: ForgotPasswordFormProps) => {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Button size="lg" loading={isSubmitting}>
|
<Button size="lg" loading={isSubmitting}>
|
||||||
Reset Password
|
{isSubmitting ? 'Sending Reset Email...' : 'Reset Password'}
|
||||||
</Button>
|
</Button>
|
||||||
</form>
|
</form>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ export const ResetPasswordForm = ({ className, token }: ResetPasswordFormProps)
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Button size="lg" loading={isSubmitting}>
|
<Button size="lg" loading={isSubmitting}>
|
||||||
Reset Password
|
{isSubmitting ? 'Resetting Password...' : 'Reset Password'}
|
||||||
</Button>
|
</Button>
|
||||||
</form>
|
</form>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
import { useState } from 'react';
|
import { useState } from 'react';
|
||||||
|
|
||||||
import { zodResolver } from '@hookform/resolvers/zod';
|
import { zodResolver } from '@hookform/resolvers/zod';
|
||||||
import { Eye, EyeOff, Loader } from 'lucide-react';
|
import { Eye, EyeOff } from 'lucide-react';
|
||||||
import { signIn } from 'next-auth/react';
|
import { signIn } from 'next-auth/react';
|
||||||
import { useForm } from 'react-hook-form';
|
import { useForm } from 'react-hook-form';
|
||||||
import { FcGoogle } from 'react-icons/fc';
|
import { FcGoogle } from 'react-icons/fc';
|
||||||
@@ -147,9 +147,13 @@ export const SignInForm = ({ className }: SignInFormProps) => {
|
|||||||
<FormErrorMessage className="mt-1.5" error={errors.password} />
|
<FormErrorMessage className="mt-1.5" error={errors.password} />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Button size="lg" disabled={isSubmitting} className="dark:bg-documenso dark:hover:opacity-90">
|
<Button
|
||||||
{isSubmitting && <Loader className="mr-2 h-5 w-5 animate-spin" />}
|
size="lg"
|
||||||
Sign In
|
loading={isSubmitting}
|
||||||
|
disabled={isSubmitting}
|
||||||
|
className="dark:bg-documenso dark:hover:opacity-90"
|
||||||
|
>
|
||||||
|
{isSubmitting ? 'Signing in...' : 'Sign In'}
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
<div className="relative flex items-center justify-center gap-x-4 py-2 text-xs uppercase">
|
<div className="relative flex items-center justify-center gap-x-4 py-2 text-xs uppercase">
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
import { useState } from 'react';
|
import { useState } from 'react';
|
||||||
|
|
||||||
import { zodResolver } from '@hookform/resolvers/zod';
|
import { zodResolver } from '@hookform/resolvers/zod';
|
||||||
import { Eye, EyeOff, Loader } from 'lucide-react';
|
import { Eye, EyeOff } from 'lucide-react';
|
||||||
import { signIn } from 'next-auth/react';
|
import { signIn } from 'next-auth/react';
|
||||||
import { Controller, useForm } from 'react-hook-form';
|
import { Controller, useForm } from 'react-hook-form';
|
||||||
import { z } from 'zod';
|
import { z } from 'zod';
|
||||||
@@ -157,9 +157,13 @@ export const SignUpForm = ({ className }: SignUpFormProps) => {
|
|||||||
<FormErrorMessage className="mt-1.5" error={errors.signature} />
|
<FormErrorMessage className="mt-1.5" error={errors.signature} />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Button size="lg" disabled={isSubmitting} className="dark:bg-documenso dark:hover:opacity-90">
|
<Button
|
||||||
{isSubmitting && <Loader className="mr-2 h-5 w-5 animate-spin" />}
|
size="lg"
|
||||||
Sign Up
|
loading={isSubmitting}
|
||||||
|
disabled={isSubmitting}
|
||||||
|
className="dark:bg-documenso dark:hover:opacity-90"
|
||||||
|
>
|
||||||
|
{isSubmitting ? 'Signing up...' : 'Sign Up'}
|
||||||
</Button>
|
</Button>
|
||||||
</form>
|
</form>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
"commitlint": "commitlint --edit",
|
"commitlint": "commitlint --edit",
|
||||||
"clean": "turbo run clean && rimraf node_modules",
|
"clean": "turbo run clean && rimraf node_modules",
|
||||||
"d": "npm run dx && npm run dev",
|
"d": "npm run dx && npm run dev",
|
||||||
"dx": "npm i && npm run dx:up && npm run prisma:migrate-dev -w @documesno/prisma",
|
"dx": "npm i && npm run dx:up && npm run prisma:migrate-dev -w @documenso/prisma",
|
||||||
"dx:up": "docker compose -f docker/compose-services.yml up -d",
|
"dx:up": "docker compose -f docker/compose-services.yml up -d",
|
||||||
"dx:down": "docker compose -f docker/compose-services.yml down"
|
"dx:down": "docker compose -f docker/compose-services.yml down"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -425,7 +425,7 @@ export const AddFieldsFormPartial = ({
|
|||||||
<CardContent className="flex flex-col items-center justify-center px-6 py-4">
|
<CardContent className="flex flex-col items-center justify-center px-6 py-4">
|
||||||
<p
|
<p
|
||||||
className={cn(
|
className={cn(
|
||||||
'text-muted-foreground group-data-[selected]:text-foreground text-3xl font-medium',
|
'text-muted-foreground group-data-[selected]:text-foreground w-full truncate text-3xl font-medium',
|
||||||
fontCaveat.className,
|
fontCaveat.className,
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
|
|||||||
Reference in New Issue
Block a user