Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

NOTEHUB

A modern note-taking platform built to help users create, organize, manage, and secure their personal notes from anywhere.

MISSION

NOTEHUB helps users capture ideas, tasks, study notes, and important information in a secure and organized environment.

PROBLEM

Many beginners build simple CRUD applications but never learn how real applications manage authentication, user ownership, security, and frontend-backend integration.

SOLUTION

A full-stack note management platform powered by FastAPI and a modern frontend. Users can register, log in, create notes, organize them into categories, and securely access their own content.

USERS

Students, developers, professionals, researchers, and anyone who wants a secure digital notebook.


SYSTEM ARCHITECTURE

User Interface

Responsive HTML/CSS/JavaScript frontend

User Authentication Layer

JWT Authentication · Password Hashing · Authorization

FastAPI Backend

REST API · Business Logic · Validation · Security

SQLite/PostgreSQL Database

Users · Notes · Categories · Activity Logs


USER ROLES & PERMISSIONS

Guest

Unregistered visitor

1. View landing page
2. Register account
3. Login account
4. Learn platform features

User

Authenticated user

1. Create notes
2. View own notes
3. Edit own notes
4. Delete own notes
5. Create categories
6. Organize notes
7. Search notes
8. Archive notes

Admin

System administrator

1. View all users
2. View all notes
3. Delete inappropriate content
4. Manage user accounts
5. View platform analytics

KEY PLATFORM FEATURES

User Authentication

Secure registration and login using JWT Authentication and bcrypt password hashing.

Personal Notes

Users can create, update, read, and delete their own notes.

Categories

Organize notes into categories such as:

Work
School
Ideas
Personal
Projects

Search Functionality

Search notes by title or content.

Archive System

Archive old notes without deleting them.

User Dashboard

Quick overview of:

Total Notes
Archived Notes
Recent Notes
Categories

Admin Dashboard

System statistics and management tools.


FASTAPI ENDPOINTS

Authentication Endpoints

POST /auth/register
POST /auth/login
GET /auth/me

Notes Endpoints

POST /notes
GET /notes
GET /notes/{id}
PUT /notes/{id}
DELETE /notes/{id}

Categories Endpoints

POST /categories
GET /categories
PUT /categories/{id}
DELETE /categories/{id}

Search Endpoints

GET /notes/search?q=keyword

Archive Endpoints

PATCH /notes/{id}/archive
PATCH /notes/{id}/restore

Admin Endpoints

GET /admin/users
GET /admin/notes
DELETE /admin/users/{id}
DELETE /admin/notes/{id}

FILE STRUCTURE

NOTEHUB/
├── backend/
│   ├── app/
│   │   ├── models/
│   │   ├── schemas/
│   │   ├── routers/
│   │   ├── services/
│   │   ├── auth/
│   │   ├── core/
│   │   |
│   │   └── main.py
│   │
│   ├── requirements.txt
│   ├── .env
│   └── alembic/|
|
│
├── frontend/
│   ├── pages/
│   ├── assets/
│   ├── css/
│   ├── js/
│   ├── login.html
│   ├── register.html
│   ├── dashboard.html
│   └── notes.html
│
├── docs/
│
└── README.md

DATABASE SCHEMA

users

id
username
email
hashed_password
role
created_at

categories

id
name
user_id (FK -> users.id)
created_at

notes

id
title
content
is_archived
user_id (FK -> users.id)
category_id (FK -> categories.id)
created_at
updated_at

activity_logs

id
user_id (FK -> users.id)
action
created_at

RELATIONSHIPS

User
 ├── Many Notes
 ├── Many Categories
 └── Many Activity Logs

Category
 └── Many Notes

Note
 └── Belongs To User

FRONTEND PAGES

Home Page

Hero Section
Features
About Platform
Login Button
Register Button

Login Page

Email
Password
Login Button

Registration Page

Username
Email
Password
Confirm Password

Dashboard

Welcome User
Statistics Cards
Recent Notes
Categories

Notes Page

Create Note
Edit Note
Delete Note
Archive Note
Search Notes

Admin Dashboard

Users Table
Notes Table
System Statistics

SECURITY REQUIREMENTS

Authentication

JWT Access Tokens
Bearer Authentication
Token Expiration

Password Security

bcrypt Hashing
Password Validation

Authorization

Users can only access their own notes.
Admins can access all resources.

API Security

Pydantic Validation
SQLAlchemy ORM
Protected Routes

PROJECT REQUIREMENTS

Students must implement:

✓ FastAPI Backend
✓ SQLite Database
✓ SQLAlchemy ORM
✓ Pydantic Schemas
✓ Password Hashing
✓ JWT Authentication
✓ CRUD Operations
✓ Protected Routes
✓ User Ownership
✓ Frontend Integration
✓ Search Feature
✓ Category Management

BONUS FEATURES

Bonus 1

Add Dark Mode

Bonus 2

Export Notes as PDF

Bonus 3

Upload Images to Notes

Bonus 4

Email Verification

Bonus 5

Forgot Password System


DELIVERABLES

1. GitHub Repository
2. README.md
3. Source Code
4. Database Schema Diagram
5. API Documentation
6. Working Frontend
7. Swagger Documentation
8. Deployment Guide

GRADING

Backend Development      35 Marks
Authentication           20 Marks
Database Design          15 Marks
Frontend Development     15 Marks
Code Structure           10 Marks
Documentation             5 Marks

IMPACT & VISION

1 Secure Platform
3 User Roles
10+ API Endpoints
100% User-Owned Notes

"Your ideas deserve a secure home — NOTEHUB makes them organized, accessible, and protected."

Built with FastAPI • JWT • SQLAlchemy • Modern Frontend By Future Backend Engineers 🚀

About

A modern note-taking platform built to help users create, organize, manage, and secure their personal notes from anywhere

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors