https://github.com/nia3zzz/google_keep_notes_clone_apis
This project has been a learning project focusing on the Django Rest Framework library and creating a book library software with admin logins using JWTs as a method of authentication with the SQLite database.
https://github.com/nia3zzz/google_keep_notes_clone_apis
booklibrary django djangorestframework djangorestframeworkserializer learningproject pyjwt sqlite
Last synced: 10 months ago
JSON representation
This project has been a learning project focusing on the Django Rest Framework library and creating a book library software with admin logins using JWTs as a method of authentication with the SQLite database.
- Host: GitHub
- URL: https://github.com/nia3zzz/google_keep_notes_clone_apis
- Owner: nia3zzz
- Created: 2025-05-12T16:23:04.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-10T20:20:37.000Z (about 1 year ago)
- Last Synced: 2025-07-22T10:49:36.771Z (11 months ago)
- Topics: booklibrary, django, djangorestframework, djangorestframeworkserializer, learningproject, pyjwt, sqlite
- Language: Python
- Homepage:
- Size: 29.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Google Keep Notes Clone APIs
## Overview
Backend clone service for a **Google Keep–style note-taking app**, built with **Django**, **DRF**, and **SQLite**. It provides full CRUD operations for notes, secure user registration/login via JWT, and session management.
## Tech Stack
- **Python** (Django)
- **Django Rest Framework**
- **SQLite** (or configurable with PostgreSQL)
- **JWT** authentication
- **dotenv** for environment variables
## Installation
### Clone Repository
```bash
git clone https://github.com/nia3zzz/google_keep_notes_clone_apis.git
cd google_keep_notes_clone_apis
```
### Install Dependencies
Create and activate a virtual environment (optional but recommended):
```bash
python3 -m venv venv
source venv/bin/activate
```
Then install dependencies:
```bash
pip install -r requirements.txt
```
### Setup Environment Variables
Copy the sample environment configuration:
```bash
cp .env.sample .env
```
Update `.env` with your actual settings (e.g., `SECRET_KEY`, database config, etc.).
### Run Database Migrations
```bash
python manage.py migrate
```
### Start the Server
```bash
python manage.py runserver
```
The server will start at `http://localhost:8000`.
## Usage
- **Base API URL**: `http://localhost:8000/api/v1/`
### User Endpoints
- `POST users/` — Create a new user.
- `GET users/` — Get a user using email.
- `POST users/login/` — Login and receive JWT cookie.
- `POST users/logout/` — Logout user.
### Notes Endpoints
- `POST notes/` — Create a note.
- `GET notes/` — View a specific note.
- `PUT notes/{id}/` — Update a note.
- `DELETE notes/{id}/` — Delete a note.
- `POST notes/collaborators/{id}/` — Add collaborator in a note.
- `DELETE notes/collaborators/{id}/` — Remove collaborator in a note.