A rich text note-writing application. Letsnote's engine automatically saves notes and lets users share them with others.
Demo acc: test@letsnote.io
Password: @lphaT3sting
- Rich Text Editor - Letsnote uses
Slate.js
to provide a rich text editor for note writing. - Encrypted Storage - Notes are stored in an encrypted format in the database.
- Sharing - Users can share notes with others by generating a unique link.
- Cross-Device - Users can create an account to manage their notes from any device. [WIP: Forgot password, and email verification]
- Auto Save - Notes are automatically saved as the user types. (2 seconds delay to prevent spamming the server)
Current Letsnote Version in Production: v0.3.0
Stack | Tech |
---|---|
Backend | Django |
Python | 3.10.12 |
Database | PostgreSQL 16 |
Frontend | React.js |
Editor | Slatejs v0.102.0 |
-
Clone the repository
git clone https://github.com/gauravjot/letsnote.git
-
Set up a virtual environment and activate it.
cd ./backend python3 -m venv venv
Linux/MacOS
source venv/bin/activate
Windows
.\venv\Scripts\activate
Install the required packages
pip install -r requirements.txt
-
Set environment variables for Django. Rename
sample.env
to.env
and fill in the required fields. -
Go to
backend/notes
and runpython generate_key.py
to generate an encryption key for notes. -
Run database migrations
python manage.py makemigrations python manage.py migrate
If you encounter any issues, please refer to the Django Documentation.
-
For Production: Set up a Django production environment. Follow this guide - Deploy Django REST APIs on Ubuntu Server with uWSGI.
For Development: Run the Django server
python manage.py runserver 0.0.0.0:8000
-
Go to the
frontend
directory and install the required packagesnpm install
-
Set environment variables for the front-end. Rename
sample.env
to.env
and update fields as required. -
For Production: Build the frontend
npm run build
For Development: Run the frontend server
npm run dev
-
Clone the repository.
-
Go to the
deploy
directory. Read theREADME.md
file for more information and make the required changes. -
In the root directory of this project, run the makefile.
make build
This will build the docker image for the project and the application will be available through port 80 of the image.
-
Run the docker container.
make run
This will run the container and the application will be available on port 8080 of the host machine.
There are several ways you can contribute to this project:
-
Code Contributions: You can help us by writing code, fixing bugs, and implementing new features. Check out the Issues section for tasks that need attention or suggest improvements.
-
Bug Reports: If you encounter a bug while using Letsnote, please report it in the Issues section. Be sure to include relevant details that can help us reproduce the issue.
-
Feature Requests: Have an idea for a new feature? Share it with us in the Issues section. We encourage discussions around potential enhancements to the project.
This project is licensed under the Apache License 2.0 - see the LICENSE.md file for details.