Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Notelet πŸ“

⚠️ Notice: This repository powers the live app at notelet.vercel.app.
Changes here may directly impact the deployed version.


πŸ“– About

Notelet is a full-stack note-taking application designed to create, update, and manage notes with rich text content.
It is lightweight yet powerful, built to demonstrate clean CRUD operations and secure user authentication.


✨ Features

  • πŸ”‘ Authentication with OTP (register & login using email verification)
  • πŸ“ Rich Text Notes (store formatted content as HTML)
  • πŸ“‚ CRUD Operations
    • Create new notes
    • Read individual notes by ID
    • Update existing notes
    • Delete notes securely
  • πŸ“œ List API for fetching all notes of a logged-in user (newest first)
  • πŸ”’ Token-based Authentication to secure note operations
  • πŸ“¨ Email Utility for sending verification codes or notifications (requires SMTP credentials in .env)

πŸš€ Tech Stack

  • Backend: Django + Django REST Framework (DRF)
  • Frontend: Deployed on Vercel
  • Database: PostgreSQL / SQLite (configurable)
  • Auth: Django’s Token Authentication

πŸ“Œ Setup Instructions

  1. Clone the repository:

    git clone https://github.com/your-username/notelet.git
    cd notelet
  2. Create a virtual environment and install dependencies:

    python -m venv env
    source env/bin/activate   # (Linux/Mac)
    env\Scripts\activate      # (Windows)
    
    pip install -r requirements.txt
  3. Create a .env file in the project root and add required variables:

     SECRET_KEY = <some secret value>
     DEBUG = <True/False>
    
     ALLOWED_ORIGINS = <CORS allow origin>
    
     DATABASE_CONNECTION_STRING = <sql connecting string>
    
     OTP_LENGTH = 6
    
     EMAIL_HOST = <smtp host>
     EMAIL_PORT = 587
     EMAIL_HOST_USER = <sender email>
     EMAIL_HOST_PASSWORD = <sender email password>
    
  4. Run migrations:

    python manage.py migrate
  5. Start the server:

    python manage.py runserver

πŸ›  API Overview

Endpoint Method Auth Required Description
/auth/register POST ❌ Register with email + OTP
/auth/login POST ❌ Login with email + password
/notes/create POST βœ… Create a new note
/notes/read POST ❌ Fetch a note by ID
/notes/update POST βœ… Update an existing note
/notes/delete POST βœ… Delete a note
/notes/list GET βœ… Fetch all notes of current user

πŸ“ Notes

  • The content field stores notes in HTML (rich text) format.
  • The backend enforces that each user can only access their own notes.
  • This repository is a backend + API reference for the live app hosted on Vercel.

πŸ“© Contribution

Pull requests are welcome! For major changes, please open an issue first to discuss what you’d like to improve.


πŸ“œ License

MIT Β© 2025 Notelet

About

πŸš€ Backend for a Rich Text Notepad – A simple and efficient online notepad to create, edit, and export notes as PDFs. ✨ Features: πŸ“ Rich Text Editing with QuillJS πŸ“„ Export Notes as PDFs

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages