Skip to content

chintadavasudharini/quicknotes

Repository files navigation

Quick Notes App

A web-based notes and file management application built with Flask.

This application is deployed on AWS EC2.

Live Demo: [http://54.163.63.193/]

Features

  • User registration and login (with OTP email verification)
  • Password reset via email link
  • Add, view, edit, and delete notes
  • Upload, view, edit, and delete files
  • Download notes and files
  • Search notes and files
  • User profile and password change
  • Delete all notes/files or account
  • Flash messages for user feedback

Folder Structure

notesapp/
│
├── app.py                # Main Flask application
├── cmail.py              # Email sending utility
├── otp.py                # OTP generation logic
├── secret_token.py       # Data encryption/decryption for tokens
├── secretkeys.py         # Secret keys (usage unclear)
├── requirements.txt      # Python dependencies
├── README.md             # Project documentation
│
├── templates/            # HTML templates (Jinja2)
│   ├── addfile.html
│   ├── addnote.html
│   ├── dashboard.html
│   ├── forgotpassword.html
│   ├── index.html
│   ├── login.html
│   ├── otp.html
│   ├── profile.html
│   ├── register.html
│   ├── resetpassword.html
│   ├── viewallfiles.html
│   ├── viewallnotes.html
│   ├── viewfile.html
│   └── viewnote.html
│
├── static/               # Static files (CSS, JS, images)
│
├── flask_session/        # Flask session files
│
├── quicknotes/           # Python virtual environment
│   ├── Lib/
│   ├── Scripts/
│   └── pyvenv.cfg
│
└── __pycache__/          # Python cache files

Setup Instructions

  1. Clone the repository:

    git clone https://github.com/<your-username>/<repo-name>.git
    cd notesapp
  2. Create and activate a virtual environment:

    python -m venv quicknotes
    quicknotes\Scripts\activate
  3. Install dependencies:

    pip install -r requirements.txt
  4. Set up your database:

    • Create a MySQL database named quicknotes.
    • Create tables for users, notes, and files as required by the app.
  5. Configure environment variables:

    • Edit .env if needed for secrets and database credentials.
  6. Run the app:

    python app.py
  7. Access the app:

    • Open your browser and go to http://localhost:5000

Notes

  • Email features require proper SMTP configuration in cmail.py.
  • OTP and password reset links are sent via email.
  • All user data is stored in MySQL.

Deployment

This application is deployed on AWS EC2.

Live Demo: [http://54.163.63.193/]

Steps to Deploy on AWS EC2

  1. Launch an EC2 instance (Ubuntu recommended).
  2. SSH into your instance and install Python, pip, and MySQL.
  3. Clone your repository:
    git clone https://github.com/<your-username>/<repo-name>.git
    cd notesapp
  4. Set up your virtual environment and install dependencies:
    python3 -m venv quicknotes
    source quicknotes/bin/activate
    pip install -r requirements.txt
  5. Configure your MySQL database and environment variables.
  6. Run the Flask app (use a production server like Gunicorn for best results):
    gunicorn -w 4 app:app
  7. Set up a reverse proxy (e.g., Nginx) to forward traffic to your Flask app.
  8. Open port 80/443 in your EC2 security group for web access.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published