Coder Social home page Coder Social logo

opensignlabs / opensign Goto Github PK

View Code? Open in Web Editor NEW
2.6K 13.0 179.0 18.89 MB

🔥 The free & Open Source DocuSign alternative

Home Page: https://www.opensignlabs.com

License: GNU Affero General Public License v3.0

Shell 0.09% Dockerfile 0.11% JavaScript 96.04% HTML 0.59% CSS 3.16% Makefile 0.01%
hacktoberfest javascript reactjs mongodb nodejs open-source digital-signature e-signature electronic-signature esign

opensign's Introduction

The free and open source alternative to DocuSign

Average time to resolve an issue All Contributors GitHub commit activity (branch) GitHub last commit (by committer)

Website   •   Docs   •   Blog   •   Discord   •   Twitter   •   LinkedIn

The open-source document e-signing solution


Table of Contents

  1. Introduction
  2. Features
  3. Installation
  4. Usage
  5. Contribution Guidelines
  6. License
  7. Acknowledgments

Please star ⭐ the repo to support us! 😀

Introduction

Welcome to OpenSign, the premier open source docusign alternative - document e-signing solution designed to provide a secure, reliable and free alternative to commercial esign platforms like DocuSign, PandaDoc, SignNow, Adobe Sign, Smartwaiver, SignRequest, HelloSign & Zoho sign. Our mission is to democratize the e-signing process, making it accessible and straightforward for everyone.


Features

  • Secure PDF E-Signing: With the help of robust encryption algorithms, OpenSign™ ensures maximum security, privacy & compatibility.
  • Annotate Documents: OpenSign™ allows you to annotate PDF documents with an advanced signing pad that allows hand drawn signatures, uploaded images, typed signatures & saved signatures for the simplest signing experience ever.
  • User-Friendly Interface: OpenSign™ was built while keeping Intuitive design in mind for ease of use. Features like "Sign yourself", "Templates", "One click signatures" and "OpenSign™ Drive" makes it stand out of the crowd and even makes it better than a lot of so-called industry leaders.
  • Multi-signer Support: OpenSign's ability to invite multiple signers for signing along with the ability to invite witnesses & being able to enforce signing in a sequence makes it the only open source solution that is fully loaded and allows it to compete head-to-head with established players in e-signature space.
  • Email Unique Code(OTP) verification support for guest signers: With OpenSign™, your documents are fully secure even when being signed by guest users. Guest signers can only sign the document after entering a unique code sent to their email address. 
  • "Expiring Docs" & "Rejection": You can set documents to expire after certain number of days after which nobody will be able to sign. Not just this, OpenSign™ also allows signers to reject signing a document.
  • Beautiful email templates: All document signing invitations, completion notifications & reminders are formatted using great looking email templates.
  • PDF Template Creation: OpenSign™ allows you to create and store PDF document templates for repeated use thereby saving you a lot of time & collect e-signatures seamlessly.
  • OpenSign™ Drive: It is a centralised secure vault for your digital documents that makes storing, signing, organizing, sharing & achieving your docs a breeze.
  • Audit Trails & completion certificate: Being a security focused solution, OpenSign™ makes it a top priority to save detailed logs for tracking document activities along with time-stamps, IP addresses, email IDs & phone numbers. A completion certificate is generated as soon as document is completed which contains all the document related logs for added safety.
  • API Support: OpenSign™ API allows seamless integration into existing systems and software. You can generate an API key from the app and refer the docs to start integrating it in your existing applications.
  • Integrations: Seamless integrations with various Cloud storage systems, CRMs & enterprise platforms is available. We also have a Zapier integration that allows you to integrate it with virtually any application.

Installation

Please refer to the Installation Guide for detailed instructions on how to install OpenSign on your system.


Usage

For comprehensive guidelines on how to use OpenSign™, please consult our User Manual.


Contribution Guidelines

We welcome contributions from the open-source community. For more information on how to contribute, please read our Contribution Guidelines.


License

OpenSign is licensed under the AGPL License. For more details, see the LICENSE file.


Acknowledgments

We would like to thank all our contributors and users for their support and feedback. Special thanks to OpenSignLabs for spearheading this initiative.


Contributors

Aleksandar Jakovljevic
Aleksandar Jakovljevic

💻
Priyanshu Dwivedi
Priyanshu Dwivedi

💻
Akriti Sengar
Akriti Sengar

💻
Parth Chawande
Parth Chawande

💻
Rishabh Dewangan
Rishabh Dewangan

💻
Nitin Mishra
Nitin Mishra

💻
Jobin Selvanose
Jobin Selvanose

📖
Hans Fraiponts
Hans Fraiponts

📖
Monil Prajapati
Monil Prajapati

💻
Edogbanya Emmanuel
Edogbanya Emmanuel

🐛
pranav514
pranav514

💻
Aria
Aria

💻
Soumyadipto Pal
Soumyadipto Pal

💻
Andrey Didenko
Andrey Didenko

💻
VishakhaSainani
VishakhaSainani

💻
Andrew
Andrew

💻
Rishab
Rishab

💻
Maurizio Pillitu
Maurizio Pillitu

🐛
Luis Parra
Luis Parra

️️️️♿️
Govinda Kocharekar
Govinda Kocharekar

💻
Bilal Ahmad Bhat
Bilal Ahmad Bhat

💻
Vikram
Vikram

💻
ugoconsonni
ugoconsonni

💻
Daniel Mutwiri
Daniel Mutwiri

💻
Zathiel
Zathiel

💻

opensign's People

Contributors

ajakov avatar allcontributors[bot] avatar andrew-opensignlabs avatar andreycurious avatar arianxq avatar bilalqv avatar builderprid avatar daniel-mutwiri avatar dependabot[bot] avatar govinda04 avatar hansf avatar lemondrop847 avatar lsprr avatar maoo avatar marentdev avatar monilprajapati avatar nxglabs avatar parthrc avatar prafull-opensignlabs avatar pranav514 avatar raktima-opensignlabs avatar rishabh-git10 avatar rishabjasrotia avatar soumyadiptopal avatar ugoconsonni avatar vikramnagwal avatar vishakhasainani avatar zathiel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opensign's Issues

Change the message displayed in signature panel to guest signers when no-default signature is saved

image

Change the message from "You didn't add your default signature yet!" to "Click a signature placeholder to start signing the document!"

Steps to re-create:

  • Navigate to "Request signatures" from main menu
  • Upload a PDF, add signers and submit
  • On preview screen add place holders for all signers and click submit
  • Emails will be sent to all signers with a link to sign the document as guest
  • When a user clicks the link in order to sign the document, an OTP is sent to his email id
  • After entering the OTP he gets to see the above message if no default signature is saved in his account

Beta testers needed : Test OpenSign app & report any bugs that you find

Help us test our app which is an open source DocuSign alternative.

Steps to follow -

Your newly created issues will be labelled 'hacktoberfest' if accepted.

Fix email notification typos

image

Sender should be "OpenSign™".
Document title(MOU between Apple & Tesla) should be in bold.
Space before document title is missing.
The subtitle should be "Document signed successfully" instead of "Document sign successfully".

Getting error [ERR_REQUIRE_ESM]: require() of ES Module /usr/src/app/cloud/main.js from /usr/src/app/node_modules/parse-server/lib/ParseServer.js not supported.

I am setting up the server on my VM.
After doing docker-compose up -d, the server is not starting up. On checking logs, I found the below error:

Error [ERR_REQUIRE_ESM]: require() of ES Module /usr/src/app/cloud/main.js from /usr/src/app/node_modules/parse-server/lib/ParseServer.js not supported.
Instead change the require of main.js in /usr/src/app/node_modules/parse-server/lib/ParseServer.js to a dynamic import() which is available in all CommonJS modules.
    at ParseServer.start (/usr/src/app/node_modules/parse-server/lib/ParseServer.js:138:13)
    at async file:///usr/src/app/index.js:132:3 {
  code: 'ERR_REQUIRE_ESM'
}
/usr/src/app/node_modules/parse-server/lib/ParseServer.js:138
            require(path.resolve(process.cwd(), cloud));
            ^

Error [ERR_REQUIRE_ESM]: require() of ES Module /usr/src/app/cloud/main.js from /usr/src/app/node_modules/parse-server/lib/ParseServer.js not supported.
Instead change the require of main.js in /usr/src/app/node_modules/parse-server/lib/ParseServer.js to a dynamic import() which is available in all CommonJS modules.
    at ParseServer.start (/usr/src/app/node_modules/parse-server/lib/ParseServer.js:138:13)
    at async file:///usr/src/app/index.js:132:3 {
  code: 'ERR_REQUIRE_ESM'
}

Getting this error on Node 16 and 18.

Signup Error

Error while Signup

Payload:

{"appName":"contracts","roleName":"contracts_User","userId":"g7tAgnQTjB"}

Response:
{"code":141,"error":"Error:exception in query,Result not Found"}

[Enhancement]: Add password show feature in Login page

There is no password-show feature on the signup page, but it is on the login page. So I have added that feature to the login page. Please check this out.

One thing I also noticed is that some components are functional and some of them are class-based, so I guess you are restructuring the code. So for now, I have added this feature to the LogIn (class-based component) only.

Here's the view:
image

Access to PDF in Digital Ocean blocked by CORS policy

Description

After signing a document, the page shows the error (twice) Failed to load PDF file.. Inspecting the browser console, I found a probably relevant log:

Access to fetch at 'https://foo.nyc3.digitaloceanspaces.com/exported_file_4627_0000-00-00T00%3A45%3A43.344Z.pdf' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

Steps to reproduce

  1. Run with docker compose
rm -rf apps/OpenSign/public/mfbuild
cd microfrontends/SignDocuments && npm install && npm run build && cd ../..
cp .env.local_dev .env
docker compose up -d
  1. Create account
  2. New Document > Sign yourself
  3. Submit signed document

Expected behaviour

The preview of the signed PDF

Actual behaviour

Error message Failed to load PDF file., shown twice (in the Pages left column and in the main column)

Screenshot 2023-11-08 at 20 51 30

[Bug]: Issue found on setting up the project locally

I was setting up this project in my device and i found this issue: it shows "cannot read properties of undefined" in charAt which is in Redux -> action -> index.js

Preview :
image

Can anyone confirm that they are also getting this error while setting up the project? If yes, then I have already solved it and created a PR for it. If you find it suitable, then you can merge it !!

Change subject of OTP email from "your otp" to "Your OpenSign™ OTP"

image

Steps to re-create:

  • Navigate to "Request signatures" from main menu
  • Upload a PDF, add signers and submit
  • On preview screen add place holders for all signers and click submit
  • Emails will be sent to all signers with a link to sign the document as guest
  • When a user clicks the link in order to sign the document, an OTP is sent to his email id

Docker Error syntax issue

Error 1:

PS > docker compose up -d
Error response from daemon: invalid reference format: repository name must be lowercase

Error 2:

Failed to load \codebase\OpenSign\OpenSignServer\.env: open \codebase\OpenSign\OpenSignServer\.env: The system cannot find the path specified.

Error 3: Unable to build DockerFile

 > [server 3/5] COPY apps/OpenSignServer/package*.json ./:
------
failed to solve: lstat /var/lib/docker/tmp/buildkit-mount2120675588/apps/OpenSignServer: no such file or directory  

Minio Support ?

Would be good to have a fully self-hosted version by ditching the s3, and using a the compatible minio api please ?

Help us improve the README.md file by adding project screenshots

o1 o2 o3 We are super excited for our launch on ProductHunt tomorrow(19th Oct). We would like somebody to help us improve the readme file by adding screenshots from attachments to it and format it correctly. The images should be aligned correctly and open in full size on clicking.

Cannot read properties of undefined (reading 'roundedStep') - trying to create document and sign on app.opensignlabs.com

Steps to reproduce:

  1. Sign up on app.opensignlabs.com
  2. Create a document
  3. Add 2 signers (plus mandatory fields), one of which is yourself (current user)
  4. Add placeholders in 2 different pages for Signatures and Stamps
  5. Finish the document
  6. When asked to sign immediately the document, say Yes

At this point I'd have expected to be redirected to the document signature screen, but instead, the following error was shown: Cannot read properties of undefined (reading 'roundedStep')

Screenshot 2023-11-02 at 11 34 39

Improve the filename of the downloaded file

After signing a document, currently the document name is generated as below -
"a long document name_signed_by_OpenSign™.pdf"

The filename will look more consistent if it is -
"a_long_document_name_signed_by_OpenSign™.pdf"

Select Folder modal is not user friendly

Issue
When clicking on the pencil icon within 'Sign Yourself,' it opens a modal for creating a folder. However, when the sidebar and the modal for creating a folder are open, the button on the modal gets hidden behind the sidebar, affecting user visibility.

image

image
image

In-correct email generated when one of the signers signs a document in "request signatures" flow

image

Steps to re-create:

  • Navigate to "Request signatures" from main menu
  • Upload a PDF, add signers and submit
  • On preview screen add place holders for all signers and click submit
  • Emails will be sent to all signers with a link to sign the document as guest
  • Click the link received in signer's mailbox in order to sign the document and enter the OTP
  • Sign the document by clicking the placeholder and submitting
  • The email generated after this incorrectly says the creator of the document has signed the document

In the screenshot above, the title of the email says "Andrew has signed the doc " even when "Tim" signs the document.

Design is not mobile friendly

  • Clickable navbar elements are cropped when screen size bellow 970px.

  • Content does not appear properly in small screen.

  • Footer copyright information not align perfectly in small screen.

Screenshot 2023-10-31 202952

Change page titles

Change page titles for all pages from -
"contracts - Page Title" to Page Title - OpenSign™

For example -
The title of Dashboard page is "contracts - Dashboard" but it should be Dashboard - OpenSign™

GCS support

It would be great to have first class support for Google Cloud Platform(GCP) with a Google Cloud Storage(GCS) backend for file objects.

Completion certificate issues

image

Fix below issues in completion certificate generated -

  • Change time-zone to UTC
  • Add OpenSign logo at the top left corner
  • Show organization of the current user
  • IP addresses are not recorded in some cases

Create .env template

Create env template file so that new contributors can can make env from the template

Prodcution Docker Containers

Would be great to have a "production" version published to dockerhub / ghcr / etc.
This will also allow for a simpler docker compose set up.

Error when submitting a document for signature : Unexpected token '<'

I'm trying to run OpenSign locally using Docker compose; when I hit the Submit button, either under Sign Yourself or Request Signatures, I hit the error attached below.

I reproduced the same error on v1.0.2 tag and staging branch.

I've followed installation instructions, and updated the following variables in my .env file (starting from .env.frontend_dev):

  • DO_SPACE
  • DO_ENDPOINT
  • DO_BASEURL
  • DO_ACCESS_KEY_ID
  • DO_SECRET_ACCESS_KEY
  • DO_REGION
  • PFX_BASE64

Anyone have stumbled on this already?

Attaching logs below.

On screen

ERROR : Unexpected token '<'
Cannot read properties of undefined (reading '__initialized')
TypeError: Cannot read properties of undefined (reading '__initialized')
    at http://localhost:3000/static/js/node_modules_mf-cra_dist_index_js-_1dba0.chunk.js:109:33
    at Generator.next (<anonymous>)
    at http://localhost:3000/static/js/node_modules_mf-cra_dist_index_js-_1dba0.chunk.js:90:67
    at new Promise (<anonymous>)
    at __awaiter (http://localhost:3000/static/js/node_modules_mf-cra_dist_index_js-_1dba0.chunk.js:72:10)
    at HTMLScriptElement.<anonymous> (http://localhost:3000/static/js/node_modules_mf-cra_dist_index_js-_1dba0.chunk.js:106:44)

On container logs

OpenSignServer-container  | new entry is insert in contracts_Document
OpenSignServer-container  | info: afterSave triggered for contracts_Document for user Fa5iA4nN6b:
OpenSignServer-container  |   Input: {"ACL":{"Fa5iA4nN6b":{"read":true,"write":true},"*":{"read":true,"write":true}},"ExtUserPtr":{"__type":"Pointer","className":"contracts_Users","objectId":"PJbvhSBP7G"},"CreatedBy":{"__type":"Pointer","className":"_User","objectId":"Fa5iA4nN6b"},"URL":"http://127.0.0.1:8080/app/files/opensignstgn/6ee3f92c93d4c44c47a44e7f38547fac_Cartell_EsmorzArt.pdf","Name":"sdfdsf","createdAt":"2023-11-06T19:49:27.300Z","IsCompleted":false,"IsDeclined":false,"SendinOrder":false,"RemindOnceInEvery":5,"AutomaticReminders":false,"SentToOthers":false,"TimeToCompleteDays":15,"updatedAt":"2023-11-06T19:49:27.300Z","objectId":"GrYY3YINBR"} {"className":"contracts_Document","triggerType":"afterSave","user":"Fa5iA4nN6b"}
OpenSignServer-container  | info: afterSave triggered for contracts_Document for user undefined:
OpenSignServer-container  |   Input: {"ExtUserPtr":{"__type":"Pointer","className":"contracts_Users","objectId":"PJbvhSBP7G"},"CreatedBy":{"__type":"Pointer","className":"_User","objectId":"Fa5iA4nN6b"},"URL":"http://127.0.0.1:8080/app/files/opensignstgn/6ee3f92c93d4c44c47a44e7f38547fac_Cartell_EsmorzArt.pdf","Name":"sdfdsf","IsCompleted":false,"IsDeclined":false,"SendinOrder":false,"RemindOnceInEvery":5,"AutomaticReminders":false,"SentToOthers":false,"TimeToCompleteDays":15,"createdAt":"2023-11-06T19:49:27.300Z","updatedAt":"2023-11-06T19:49:27.341Z","ACL":{"Fa5iA4nN6b":{"read":true,"write":true},"*":{"read":true,"write":true}},"ExpiryDate":{"__type":"Date","iso":"2023-11-21T19:49:27.300Z"},"objectId":"GrYY3YINBR"} {"className":"contracts_Document","triggerType":"afterSave"}
OpenSignServer-container  | info: afterSave triggered for contracts_Document for user undefined:
OpenSignServer-container  |   Input: {"ExtUserPtr":{"__type":"Pointer","className":"contracts_Users","objectId":"PJbvhSBP7G"},"CreatedBy":{"__type":"Pointer","className":"_User","objectId":"Fa5iA4nN6b"},"URL":"http://127.0.0.1:8080/app/files/opensignstgn/6ee3f92c93d4c44c47a44e7f38547fac_Cartell_EsmorzArt.pdf","Name":"sdfdsf","IsCompleted":false,"IsDeclined":false,"SendinOrder":false,"RemindOnceInEvery":5,"AutomaticReminders":false,"SentToOthers":false,"TimeToCompleteDays":15,"createdAt":"2023-11-06T19:49:27.300Z","updatedAt":"2023-11-06T19:49:27.341Z","ACL":{"Fa5iA4nN6b":{"read":true,"write":true},"*":{"read":true,"write":true}},"ExpiryDate":{"__type":"Date","iso":"2023-11-21T19:49:27.300Z"},"objectId":"GrYY3YINBR"}
OpenSignServer-container  |   Result: undefined {"className":"contracts_Document","triggerType":"afterSave"}
OpenSignServer-container  | info: afterSave triggered for contracts_Document for user Fa5iA4nN6b:
OpenSignServer-container  |   Input: {"ACL":{"Fa5iA4nN6b":{"read":true,"write":true},"*":{"read":true,"write":true}},"ExtUserPtr":{"__type":"Pointer","className":"contracts_Users","objectId":"PJbvhSBP7G"},"CreatedBy":{"__type":"Pointer","className":"_User","objectId":"Fa5iA4nN6b"},"URL":"http://127.0.0.1:8080/app/files/opensignstgn/6ee3f92c93d4c44c47a44e7f38547fac_Cartell_EsmorzArt.pdf","Name":"sdfdsf","createdAt":"2023-11-06T19:49:27.300Z","IsCompleted":false,"IsDeclined":false,"SendinOrder":false,"RemindOnceInEvery":5,"AutomaticReminders":false,"SentToOthers":false,"TimeToCompleteDays":15,"updatedAt":"2023-11-06T19:49:27.300Z","objectId":"GrYY3YINBR"}
OpenSignServer-container  |   Result: undefined {"className":"contracts_Document","triggerType":"afterSave","user":"Fa5iA4nN6b"}
OpenSignServer-container  | info: afterSave triggered for contracts_Document for user undefined:
OpenSignServer-container  |   Input: {"ExtUserPtr":{"__type":"Pointer","className":"contracts_Users","objectId":"PJbvhSBP7G"},"CreatedBy":{"__type":"Pointer","className":"_User","objectId":"Fa5iA4nN6b"},"URL":"http://127.0.0.1:8080/app/files/opensignstgn/6ee3f92c93d4c44c47a44e7f38547fac_Cartell_EsmorzArt.pdf","Name":"sdfdsf","IsCompleted":false,"IsDeclined":false,"SendinOrder":false,"RemindOnceInEvery":5,"AutomaticReminders":false,"SentToOthers":false,"TimeToCompleteDays":15,"createdAt":"2023-11-06T19:49:27.300Z","updatedAt":"2023-11-06T19:49:27.386Z","ExpiryDate":{"__type":"Date","iso":"2023-11-21T19:49:27.300Z"},"ACL":{"Fa5iA4nN6b":{"read":true,"write":true}},"objectId":"GrYY3YINBR"} {"className":"contracts_Document","triggerType":"afterSave"}
OpenSignServer-container  | info: afterSave triggered for contracts_Document for user undefined:
OpenSignServer-container  |   Input: {"ExtUserPtr":{"__type":"Pointer","className":"contracts_Users","objectId":"PJbvhSBP7G"},"CreatedBy":{"__type":"Pointer","className":"_User","objectId":"Fa5iA4nN6b"},"URL":"http://127.0.0.1:8080/app/files/opensignstgn/6ee3f92c93d4c44c47a44e7f38547fac_Cartell_EsmorzArt.pdf","Name":"sdfdsf","IsCompleted":false,"IsDeclined":false,"SendinOrder":false,"RemindOnceInEvery":5,"AutomaticReminders":false,"SentToOthers":false,"TimeToCompleteDays":15,"createdAt":"2023-11-06T19:49:27.300Z","updatedAt":"2023-11-06T19:49:27.386Z","ExpiryDate":{"__type":"Date","iso":"2023-11-21T19:49:27.300Z"},"ACL":{"Fa5iA4nN6b":{"read":true,"write":true}},"objectId":"GrYY3YINBR"}
OpenSignServer-container  |   Result: undefined {"className":"contracts_Document","triggerType":"afterSave"}

Issue with multiple annotations in single file

Steps to re-produce -

  • Upload a PDF using "Sign yourself" flow
  • Draw a signature at 2 different locations
  • Submit

The screen stucks at the loader displaying "this might take some time".

Expected outcome -
It should successfully sign the document

Add "Deploy to Digital Ocean" button

We need to create "Deploy to Digital Ocean" button in the README.md file that should ideally setup the entire app on Digital Ocean with once click.

Below are the steps we need to follow -

  • Deploy the React frontend app from apps/OpenSign folder of the repo as a component
  • Deploy the API from apps/OpenSignServer of the repo as another component
  • Setup a MongoDB that will store & retrieve the data via API.
  • Setup all Environment variables(some will be auto generated during runtime, some will have fixed default values & users will be asked to enter the values for some others)

CI=false
PUBLIC_URL=https://yourdomain.com/
GENERATE_SOURCEMAP=false
REACT_APP_SEVERURL=https://yourdomain.com/api/app
REACT_APP_APPID=opensignnaxn (you can change this if you want)
APP_ID=opensignnaxn (You can change this if you want)
appName=open_sign_server (you can change this if you want)
MASTER_KEY= Any random key that will be used as masterkey(should be at least 12 character long)
MONGODB_URI = mongodb://root:example@opensigndb/OpenSignDB?authSource=admin
PARSE_MOUNT = /app
SERVER_URL= url where api is deployed (in general it is yourdomain.com/api/app
TZ=Asia/Kolkata (timezone)
DO_SPACE= digital ocean space name
DO_ENDPOINT= digital ocean spaces endpoint
DO_BASEURL = digitial ocean spaces base url
DO_ACCESS_KEY_ID= digital ocean access key id
DO_SECRET_ACCESS_KEY = digital ocean secret access key
DO_REGION = us-west (digital ocean region)
MAILGUN_API_KEY = mailgun.com API key
MAILGUN_DOMAIN = mail.yourdomain.com
MAILGUN_SENDER = [email protected]
PFX_BASE64 = base64 encoded document signing certificate - pfx or p12)

Change copyright notice

Change copyright notice from "All Rights Reserved © 2023 Contracts (version: 0.1.0.0.1)" to "All Rights Reserved © 2023 OpenSign (version: 0.1.0.0.1)".

Make sure you dont change any variables. You only need to hard-code the value "OpenSign" instead of the "Contracts".

404 error

I got strange issue on every URL it is throwing 404 error!

image

Content creators needed : Write a blog/medium post about our project

Help us in spreading the word about our project which is an open source DocuSign alternative:

Steps to follow -

  • Read more about our project at OpenSignWebsite Producthunt and Readme
  • Create an account at https://www.opensignlabs.com/plans-pricing if you want to experience the product in depth
  • You can select the hosted plan (worth 29.99$/mo). To get it free during beta use coupon code "FREEBETA"
  • Write an article about any topic that includes our product. Content should be manually written without use of A.I.
  • Add Link to our GitHub repo and website in the article
  • Add screenshots/logos wherever necessary

Submit the links in comment.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.