Compare commits
1 Commits
chore/gith
...
docs/rende
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b6f9d70fec |
50
.github/ISSUE_TEMPLATE/bug-report.md
vendored
50
.github/ISSUE_TEMPLATE/bug-report.md
vendored
@@ -1,50 +0,0 @@
|
|||||||
---
|
|
||||||
name: Bug Report
|
|
||||||
about: Create a bug report to help us improve
|
|
||||||
---
|
|
||||||
|
|
||||||
<!--- Please provide a general summary of the issue in the Title above -->
|
|
||||||
|
|
||||||
## Issue Description
|
|
||||||
|
|
||||||
<!--- Please provide a clear and concise description of the problem. -->
|
|
||||||
|
|
||||||
## Steps to Reproduce
|
|
||||||
|
|
||||||
<!--- Please provide step-by-step instructions to reproduce the issue. -->
|
|
||||||
<!--- Include code snippets, error messages, and any other relevant information. -->
|
|
||||||
|
|
||||||
1. Step 1
|
|
||||||
2. Step 2
|
|
||||||
3. ...
|
|
||||||
|
|
||||||
## Expected Behavior
|
|
||||||
|
|
||||||
<!--- Describe what you expected to happen. -->
|
|
||||||
|
|
||||||
## Current Behavior
|
|
||||||
|
|
||||||
<!--- Describe what is currently happening. -->
|
|
||||||
|
|
||||||
## Screenshots (optional)
|
|
||||||
|
|
||||||
<!--- If applicable, add screenshots to help explain the issue. -->
|
|
||||||
|
|
||||||
## Environment
|
|
||||||
|
|
||||||
<!--- Please provide information about your environment, such as operating system, browser, version, etc. -->
|
|
||||||
|
|
||||||
- OS: [e.g., Windows 10]
|
|
||||||
- Browser: [e.g., Chrome, Firefox]
|
|
||||||
- Version: [e.g., 2.0.1]
|
|
||||||
|
|
||||||
## Checklist
|
|
||||||
|
|
||||||
<!--- Please check the boxes that apply to this issue report. -->
|
|
||||||
<!--- You can add or remove items as needed. -->
|
|
||||||
|
|
||||||
- [ ] I have searched the existing issues to make sure this is not a duplicate.
|
|
||||||
- [ ] I have provided steps to reproduce the issue.
|
|
||||||
- [ ] I have included relevant environment information.
|
|
||||||
- [ ] I have included any relevant screenshots.
|
|
||||||
- [ ] I understand that this is a voluntary contribution and that there is no guarantee of resolution.
|
|
||||||
41
.github/ISSUE_TEMPLATE/feature-request.md
vendored
41
.github/ISSUE_TEMPLATE/feature-request.md
vendored
@@ -1,41 +0,0 @@
|
|||||||
---
|
|
||||||
name: Feature Request
|
|
||||||
about: Suggest a new idea or enhancement for this project
|
|
||||||
---
|
|
||||||
|
|
||||||
<!--- Please provide a clear and concise title for your feature request -->
|
|
||||||
|
|
||||||
## Feature Description
|
|
||||||
|
|
||||||
<!--- Describe the feature you are requesting in detail. -->
|
|
||||||
<!--- Explain what problem it solves or what value it adds to the project. -->
|
|
||||||
|
|
||||||
## Use Case
|
|
||||||
|
|
||||||
<!--- Provide a scenario or use case where this feature would be beneficial. -->
|
|
||||||
<!--- Explain how users would interact with this feature and why it's important. -->
|
|
||||||
|
|
||||||
## Proposed Solution
|
|
||||||
|
|
||||||
<!--- If you have an idea of how this feature could be implemented, describe it here. -->
|
|
||||||
<!--- Include any technical details, UI/UX considerations, or design suggestions. -->
|
|
||||||
|
|
||||||
## Alternatives (optional)
|
|
||||||
|
|
||||||
<!--- Are there any alternative ways to achieve the same goal? -->
|
|
||||||
<!--- Describe other approaches that could be considered if this feature is not implemented. -->
|
|
||||||
|
|
||||||
## Additional Context
|
|
||||||
|
|
||||||
<!--- Add any additional context or information that might be relevant to the feature request. -->
|
|
||||||
|
|
||||||
## Checklist
|
|
||||||
|
|
||||||
<!--- Please check the boxes that apply to this feature request. -->
|
|
||||||
<!--- You can add or remove items as needed. -->
|
|
||||||
|
|
||||||
- [ ] I have searched the existing feature requests to make sure this is not a duplicate.
|
|
||||||
- [ ] I have provided a detailed description of the requested feature.
|
|
||||||
- [ ] I have explained the use case or scenario for this feature.
|
|
||||||
- [ ] I have included any relevant technical details or design suggestions.
|
|
||||||
- [ ] I understand that this is a suggestion and that there is no guarantee of implementation.
|
|
||||||
41
.github/ISSUE_TEMPLATE/improvement.md
vendored
41
.github/ISSUE_TEMPLATE/improvement.md
vendored
@@ -1,41 +0,0 @@
|
|||||||
---
|
|
||||||
name: General Improvement
|
|
||||||
about: Suggest a minor enhancement or improvement for this project
|
|
||||||
---
|
|
||||||
|
|
||||||
<!--- Please provide a clear and concise title for your improvement suggestion -->
|
|
||||||
|
|
||||||
## Improvement Description
|
|
||||||
|
|
||||||
<!--- Describe the improvement you are suggesting in detail. -->
|
|
||||||
<!--- Explain what specific aspect of the project it addresses or enhances. -->
|
|
||||||
|
|
||||||
## Rationale
|
|
||||||
|
|
||||||
<!--- Explain why this improvement would be beneficial. -->
|
|
||||||
<!--- Share any context, pain points, or reasons for suggesting this change. -->
|
|
||||||
|
|
||||||
## Proposed Solution
|
|
||||||
|
|
||||||
<!--- If you have a suggestion for how this improvement could be implemented, describe it here. -->
|
|
||||||
<!--- Include any technical details, design suggestions, or other relevant information. -->
|
|
||||||
|
|
||||||
## Alternatives (optional)
|
|
||||||
|
|
||||||
<!--- Are there any alternative approaches to achieve the same improvement? -->
|
|
||||||
<!--- Describe other ways to address the issue or enhance the project. -->
|
|
||||||
|
|
||||||
## Additional Context
|
|
||||||
|
|
||||||
<!--- Add any additional context or information that might be relevant to the improvement suggestion. -->
|
|
||||||
|
|
||||||
## Checklist
|
|
||||||
|
|
||||||
<!--- Please check the boxes that apply to this improvement suggestion. -->
|
|
||||||
<!--- You can add or remove items as needed. -->
|
|
||||||
|
|
||||||
- [ ] I have searched the existing issues and improvement suggestions to avoid duplication.
|
|
||||||
- [ ] I have provided a clear description of the improvement being suggested.
|
|
||||||
- [ ] I have explained the rationale behind this improvement.
|
|
||||||
- [ ] I have included any relevant technical details or design suggestions.
|
|
||||||
- [ ] I understand that this is a suggestion and that there is no guarantee of implementation.
|
|
||||||
49
.github/PULL_REQUEST_TEMPLATE/generic.md
vendored
49
.github/PULL_REQUEST_TEMPLATE/generic.md
vendored
@@ -1,49 +0,0 @@
|
|||||||
---
|
|
||||||
name: Pull Request
|
|
||||||
about: Submit changes to the project for review and inclusion
|
|
||||||
---
|
|
||||||
|
|
||||||
## Description
|
|
||||||
|
|
||||||
<!--- Describe the changes introduced by this pull request. -->
|
|
||||||
<!--- Explain what problem it solves or what feature/fix it adds. -->
|
|
||||||
|
|
||||||
## Related Issue
|
|
||||||
|
|
||||||
<!--- If this pull request is related to a specific issue, reference it here using #issue_number. -->
|
|
||||||
<!--- For example, "Fixes #123" or "Addresses #456". -->
|
|
||||||
|
|
||||||
## Changes Made
|
|
||||||
|
|
||||||
<!--- Provide a summary of the changes made in this pull request. -->
|
|
||||||
<!--- Include any relevant technical details or architecture changes. -->
|
|
||||||
|
|
||||||
- Change 1
|
|
||||||
- Change 2
|
|
||||||
- ...
|
|
||||||
|
|
||||||
## Testing Performed
|
|
||||||
|
|
||||||
<!--- Describe the testing that you have performed to validate these changes. -->
|
|
||||||
<!--- Include information about test cases, testing environments, and results. -->
|
|
||||||
|
|
||||||
- Tested feature X in scenario Y.
|
|
||||||
- Ran unit tests for component Z.
|
|
||||||
- Tested on browsers A, B, and C.
|
|
||||||
- ...
|
|
||||||
|
|
||||||
## Checklist
|
|
||||||
|
|
||||||
<!--- Please check the boxes that apply to this pull request. -->
|
|
||||||
<!--- You can add or remove items as needed. -->
|
|
||||||
|
|
||||||
- [ ] I have tested these changes locally and they work as expected.
|
|
||||||
- [ ] I have added/updated tests that prove the effectiveness of these changes.
|
|
||||||
- [ ] I have updated the documentation to reflect these changes, if applicable.
|
|
||||||
- [ ] I have followed the project's coding style guidelines.
|
|
||||||
- [ ] I have addressed the code review feedback from the previous submission, if applicable.
|
|
||||||
|
|
||||||
## Additional Notes
|
|
||||||
|
|
||||||
<!--- Provide any additional context or notes for the reviewers. -->
|
|
||||||
<!--- This might include details about design decisions, potential concerns, or anything else relevant. -->
|
|
||||||
40
.github/PULL_REQUEST_TEMPLATE/test-addition.md
vendored
40
.github/PULL_REQUEST_TEMPLATE/test-addition.md
vendored
@@ -1,40 +0,0 @@
|
|||||||
---
|
|
||||||
name: Test Addition
|
|
||||||
about: Submit a new test, either unit or end-to-end (E2E), for review and inclusion
|
|
||||||
---
|
|
||||||
|
|
||||||
## Description
|
|
||||||
|
|
||||||
<!--- Provide a clear and concise description of the new test you are adding. -->
|
|
||||||
<!--- Explain the purpose of the test and what it aims to validate. -->
|
|
||||||
|
|
||||||
## Related Issue
|
|
||||||
|
|
||||||
<!--- If this test addition is related to a specific issue, reference it here using #issue_number. -->
|
|
||||||
<!--- For example, "Fixes #123" or "Addresses #456". -->
|
|
||||||
|
|
||||||
## Test Details
|
|
||||||
|
|
||||||
<!--- Describe the details of the test you're adding. -->
|
|
||||||
<!--- Include information about inputs, expected outputs, and any specific scenarios. -->
|
|
||||||
|
|
||||||
- Test Name: Name of the test
|
|
||||||
- Type: [Unit / E2E]
|
|
||||||
- Description: Brief description of what the test checks
|
|
||||||
- Inputs: What inputs the test uses (if applicable)
|
|
||||||
- Expected Output: What output or behavior the test expects
|
|
||||||
|
|
||||||
## Checklist
|
|
||||||
|
|
||||||
<!--- Please check the boxes that apply to this pull request. -->
|
|
||||||
<!--- You can add or remove items as needed. -->
|
|
||||||
|
|
||||||
- [ ] I have written the new test and ensured it works as intended.
|
|
||||||
- [ ] I have added necessary documentation to explain the purpose of the test.
|
|
||||||
- [ ] I have followed the project's testing guidelines and coding style.
|
|
||||||
- [ ] I have addressed any review feedback from previous submissions, if applicable.
|
|
||||||
|
|
||||||
## Additional Notes
|
|
||||||
|
|
||||||
<!--- Provide any additional context or notes for the reviewers. -->
|
|
||||||
<!--- This might include explanations about the testing approach or any potential concerns. -->
|
|
||||||
@@ -391,7 +391,6 @@ export const Widget = ({ className, children, ...props }: WidgetProps) => {
|
|||||||
|
|
||||||
<SignaturePad
|
<SignaturePad
|
||||||
className="aspect-video w-full rounded-md border"
|
className="aspect-video w-full rounded-md border"
|
||||||
defaultValue={signatureDataUrl || ''}
|
|
||||||
onChange={setDraftSignatureDataUrl}
|
onChange={setDraftSignatureDataUrl}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "turbo run build",
|
"build": "turbo run build",
|
||||||
|
"build:web": "turbo run build --filter=@documenso/web",
|
||||||
"dev": "turbo run dev --filter=@documenso/web --filter=@documenso/marketing",
|
"dev": "turbo run dev --filter=@documenso/web --filter=@documenso/marketing",
|
||||||
"start": "cd apps && cd web && next start",
|
"start": "cd apps && cd web && next start",
|
||||||
"lint": "turbo run lint",
|
"lint": "turbo run lint",
|
||||||
|
|||||||
@@ -12,16 +12,12 @@ export const authRouter = router({
|
|||||||
|
|
||||||
return await createUser({ name, email, password, signature });
|
return await createUser({ name, email, password, signature });
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
let message =
|
console.error(err);
|
||||||
'We were unable to create your account. Please review the information you provided and try again.';
|
|
||||||
|
|
||||||
if (err instanceof Error && err.message === 'User already exists') {
|
|
||||||
message = 'User with this email already exists. Please use a different email address.';
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new TRPCError({
|
throw new TRPCError({
|
||||||
code: 'BAD_REQUEST',
|
code: 'BAD_REQUEST',
|
||||||
message,
|
message:
|
||||||
|
'We were unable to create your account. Please review the information you provided and try again.',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
|
|||||||
@@ -6,7 +6,9 @@ import { shareLinkRouter } from './share-link-router/router';
|
|||||||
import { procedure, router } from './trpc';
|
import { procedure, router } from './trpc';
|
||||||
|
|
||||||
export const appRouter = router({
|
export const appRouter = router({
|
||||||
hello: procedure.query(() => 'Hello, world!'),
|
health: procedure.query(() => {
|
||||||
|
return { status: 'ok' };
|
||||||
|
}),
|
||||||
auth: authRouter,
|
auth: authRouter,
|
||||||
profile: profileRouter,
|
profile: profileRouter,
|
||||||
document: documentRouter,
|
document: documentRouter,
|
||||||
|
|||||||
@@ -97,7 +97,10 @@ export const DocumentFlowFormContainerStep = ({
|
|||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<p className="text-muted-foreground text-sm">
|
<p className="text-muted-foreground text-sm">
|
||||||
Step <span>{`${step} of ${maxStep}`}</span>
|
{title}{' '}
|
||||||
|
<span>
|
||||||
|
({step}/{maxStep})
|
||||||
|
</span>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div className="bg-muted relative mt-4 h-[2px] rounded-md">
|
<div className="bg-muted relative mt-4 h-[2px] rounded-md">
|
||||||
|
|||||||
103
render.yaml
Normal file
103
render.yaml
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
services:
|
||||||
|
- type: web
|
||||||
|
name: documenso-app
|
||||||
|
env: node
|
||||||
|
plan: free
|
||||||
|
buildCommand: npm i && npm run build:web
|
||||||
|
startCommand: npx prisma migrate deploy --schema packages/prisma/schema.prisma && npm run start
|
||||||
|
healthCheckPath: /api/trpc/health
|
||||||
|
|
||||||
|
envVars:
|
||||||
|
# Node Version
|
||||||
|
- key: NODE_VERSION
|
||||||
|
value: 18.17.0
|
||||||
|
|
||||||
|
- key: PORT
|
||||||
|
value: 10000
|
||||||
|
|
||||||
|
# Auth
|
||||||
|
- key: NEXTAUTH_URL
|
||||||
|
fromService:
|
||||||
|
name: documenso-app
|
||||||
|
type: web
|
||||||
|
envVarKey: RENDER_EXTERNAL_URL
|
||||||
|
- key: NEXTAUTH_SECRET
|
||||||
|
generateValue: true
|
||||||
|
|
||||||
|
# Database
|
||||||
|
- key: NEXT_PRIVATE_DATABASE_URL
|
||||||
|
fromDatabase:
|
||||||
|
name: documenso-db
|
||||||
|
property: connectionString
|
||||||
|
|
||||||
|
- key: NEXT_PRIVATE_DIRECT_DATABASE_URL
|
||||||
|
fromDatabase:
|
||||||
|
name: documenso-db
|
||||||
|
property: connectionString
|
||||||
|
|
||||||
|
# URLs
|
||||||
|
- key: NEXT_PUBLIC_WEBAPP_URL
|
||||||
|
fromService:
|
||||||
|
name: documenso-app
|
||||||
|
type: web
|
||||||
|
envVarKey: RENDER_EXTERNAL_URL
|
||||||
|
- key: NEXT_PUBLIC_MARKETING_URL
|
||||||
|
value: 'http://localhost:3001'
|
||||||
|
|
||||||
|
# SMTP
|
||||||
|
- key: NEXT_PRIVATE_SMTP_TRANSPORT
|
||||||
|
value: 'smtp-auth'
|
||||||
|
- key: NEXT_PRIVATE_SMTP_HOST
|
||||||
|
sync: false
|
||||||
|
- key: NEXT_PRIVATE_SMTP_PORT
|
||||||
|
sync: false
|
||||||
|
- key: NEXT_PRIVATE_SMTP_USERNAME
|
||||||
|
sync: false
|
||||||
|
- key: NEXT_PRIVATE_SMTP_PASSWORD
|
||||||
|
sync: false
|
||||||
|
- key: NEXT_PRIVATE_SMTP_FROM_NAME
|
||||||
|
sync: false
|
||||||
|
- key: NEXT_PRIVATE_SMTP_FROM_ADDRESS
|
||||||
|
sync: false
|
||||||
|
|
||||||
|
# Stripe
|
||||||
|
- key: NEXT_PRIVATE_STRIPE_API_KEY
|
||||||
|
sync: false
|
||||||
|
- key: NEXT_PRIVATE_STRIPE_WEBHOOK_SECRET
|
||||||
|
sync: false
|
||||||
|
- key: NEXT_PUBLIC_STRIPE_COMMUNITY_PLAN_MONTHLY_PRICE_ID
|
||||||
|
sync: false
|
||||||
|
- key: NEXT_PUBLIC_STRIPE_COMMUNITY_PLAN_YEARLY_PRICE_ID
|
||||||
|
sync: false
|
||||||
|
|
||||||
|
# Features
|
||||||
|
- key: NEXT_PUBLIC_POSTHOG_KEY
|
||||||
|
sync: false
|
||||||
|
- key: NEXT_PUBLIC_POSTHOG_HOST
|
||||||
|
value: 'https://eu.posthog.com'
|
||||||
|
- key: NEXT_PUBLIC_FEATURE_BILLING_ENABLED
|
||||||
|
sync: false
|
||||||
|
|
||||||
|
# Redis (Only required for marketing site, but added for completeness)
|
||||||
|
- key: NEXT_PRIVATE_REDIS_URL
|
||||||
|
sync: false
|
||||||
|
- key: NEXT_PRIVATE_REDIS_TOKEN
|
||||||
|
sync: false
|
||||||
|
|
||||||
|
# Storage
|
||||||
|
- key: NEXT_PUBLIC_UPLOAD_TRANSPORT
|
||||||
|
value: 'database'
|
||||||
|
- key: NEXT_PRIVATE_UPLOAD_ENDPOINT
|
||||||
|
sync: false
|
||||||
|
- key: NEXT_PRIVATE_UPLOAD_REGION
|
||||||
|
sync: false
|
||||||
|
- key: NEXT_PRIVATE_UPLOAD_BUCKET
|
||||||
|
sync: false
|
||||||
|
- key: NEXT_PRIVATE_UPLOAD_ACCESS_KEY_ID
|
||||||
|
sync: false
|
||||||
|
- key: NEXT_PRIVATE_UPLOAD_SECRET_ACCESS_KEY
|
||||||
|
sync: false
|
||||||
|
|
||||||
|
databases:
|
||||||
|
- name: documenso-db
|
||||||
|
plan: free
|
||||||
Reference in New Issue
Block a user