A full-stack note application built using React and Django. This app allows users to create, edit, and delete notes with a fully responsive design and a RESTful API for managing data.
- Create, edit, and delete notes 📝
- RESTful API for full CRUD operations (built using Django Rest Framework)
- Frontend developed with React and React Router for smooth navigation
- Backend built with Django and Django Rest Framework
- Data stored using Django's built-in SQLite database
- Fully responsive design created with custom CSS
- CORS handling for seamless API requests
- Security implemented using CSRF tokens
- React Hooks and Django serializers for efficient state and data management
- React: JavaScript library for building user interfaces
- React Router: For client-side routing
- CSS: Custom styles for responsiveness
- Django: High-level Python web framework
- Django Rest Framework (DRF): Toolkit for building Web APIs
- SQLite: Django's built-in database for data storage
To get a local copy up and running, follow these steps:
- Node.js and npm (for frontend)
- Python and pip (for backend)
- Git for version control
-
Clone the repository:
git clone git@github.com:M0HAMEDHANY/Notes.git cd Notes
-
Create and activate a virtual environment:
python -m venv env source env/bin/activate # On Windows: env\Scripts\activate
-
Install Django and dependencies:
pip install -r backend/requirements.txt
-
Run migrations:
python manage.py migrate
-
Start the Django development server:
python manage.py runserver
That is enough for starting the project the following steps are for those who want to edit the app with no need to run
npm run build
-
Navigate to the
frontend
directory:cd frontend
-
Install dependencies:
npm install
-
Start the React development server:
npm run dev
-
Open your browser and navigate to
http://localhost:3000
.
- Create, edit, and delete notes from the app's UI.
- The data will be stored in the SQLite database through the Django backend.
GET /api/notes/
: Fetch all notesGET /api/notes/:id/
: Fetch a specific notePOST /api/notes/
: Create a new notePUT /api/notes/:id/
: Update an existing noteDELETE /api/notes/:id/
: Delete a note
Contributions are welcome! Feel free to open issues or submit pull requests.
- Fork the repository
- Create your feature branch (
git checkout -b feature/YourFeature
) - Commit your changes (
git commit -m 'Add some feature'
) - Push to the branch (
git push origin feature/YourFeature
) - Open a pull request