Welcome to NotesNest, your personal sticky notes application designed to help you create, edit, delete, and view notes. This is my first full-stack application built using Python, HTML, CSS, Bootstrap, and the Django web framework.
- Project Overview
- Features
- Technologies Used
- Installation and Setup
- Running the Application
- Usage
- Unit Testing
- Project Structure
NotesNest is a web-based application that allows users to manage their personal notes efficiently. With this app, you can:
- Create new notes
- Edit existing notes
- Delete notes you no longer need
- View all your notes in a consolidated hub
- User Authentication: Register and login to manage your notes securely.
- CRUD Operations: Full Create, Read, Update, and Delete functionality for notes.
- Responsive Design: Built using Bootstrap to ensure the application works well on all devices.
- Unit Testing: Comprehensive unit tests are implemented to ensure application stability and functionality.
- Backend: Python, Django
- Frontend: HTML, CSS, Bootstrap
- Database: SQLite (default for Django development)
Follow these steps to set up and run NotesNest on your local machine.
- Python 3.x installed on your system
- Virtual environment tools like
venvorvirtualenv
-
Clone the Repository
git clone https://github.com/umarhuss/sticky_notes cd notesnest -
Create and Activate a Virtual Environment
python -m venv env source env/bin/activate # On Windows, use `env\Scripts\activate`
-
Install Required Dependencies
The project dependencies are listed in the
requirements.txtfile. Install them with:pip install -r requirements.txt
-
Run Migrations
To set up the database and apply migrations, run:
python manage.py migrate
To start the Django development server, use the following command:
python manage.py runserverOnce the server is running, you can open your browser and navigate to http://127.0.0.1:8000/ to access the application.
- Register: Click on the
Registerlink to create a new account. - Login: Use the
Loginlink to access your account. - Manage Notes: After logging in, you can start creating, editing, and deleting your notes from the
Notes Hub. - User Actions:
- Add Note: Use the
Add Notebutton to create a new note. - Edit Note: Click on a note's title to view and edit its content.
- Delete Note: Click the delete button to remove a note.
- Add Note: Use the
The project includes unit tests for the core functionalities to ensure everything works as expected. These tests cover models, views, and forms. To run the tests, use the following command:
python manage.py test- models.py: Contains the
StickyNotemodel defining the note's schema. - views.py: Handles the request and response logic for CRUD operations.
- forms.py: Contains the
StickyNoteFormfor creating and updating notes. - urls.py: Maps URL patterns to their respective views.
- templates/: Contains HTML templates for different pages.
- static/: Stores static files like CSS.
Thank you for checking out NotesNest! Enjoy managing your notes efficiently with this simple and effective application.