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/]
- 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
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
-
Clone the repository:
git clone https://github.com/<your-username>/<repo-name>.git cd notesapp
-
Create and activate a virtual environment:
python -m venv quicknotes quicknotes\Scripts\activate -
Install dependencies:
pip install -r requirements.txt -
Set up your database:
- Create a MySQL database named
quicknotes. - Create tables for
users,notes, andfilesas required by the app.
- Create a MySQL database named
-
Configure environment variables:
- Edit
.envif needed for secrets and database credentials.
- Edit
-
Run the app:
python app.py
-
Access the app:
- Open your browser and go to
http://localhost:5000
- Open your browser and go to
- 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.
This application is deployed on AWS EC2.
Live Demo: [http://54.163.63.193/]
- Launch an EC2 instance (Ubuntu recommended).
- SSH into your instance and install Python, pip, and MySQL.
- Clone your repository:
git clone https://github.com/<your-username>/<repo-name>.git cd notesapp
- Set up your virtual environment and install dependencies:
python3 -m venv quicknotes source quicknotes/bin/activate pip install -r requirements.txt - Configure your MySQL database and environment variables.
- Run the Flask app (use a production server like Gunicorn for best results):
gunicorn -w 4 app:app
- Set up a reverse proxy (e.g., Nginx) to forward traffic to your Flask app.
- Open port 80/443 in your EC2 security group for web access.