Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dashboard App

A personal dashboard web application for tracking metrics, logging progress, and managing day-to-day productivity. Built from scratch to explore full-cycle software architecture with a modern stack.

Tech Stack

Layer Technology
Frontend React 19 + Vite
Backend FastAPI (Python)
Database SQLite via SQLAlchemy
Auth JWT (PyJWT) + bcrypt password hashing

Features

Complete

  • User authentication - register, login, logout
    • Passwords hashed with bcrypt (never stored in plaintext)
    • JWT-based sessions (24h expiry), persisted across page reloads via localStorage
    • Protected API routes via FastAPI dependency (GET /auth/me)
    • Secret key loaded from backend/.env (gitignored)
  • Task list - Add and Remove tasks, Check tasks off.
    • Owner differentiated by ID, tasks only visible and manageable by owner.

Planned

  • Productivity tracker
    • Project management
    • Budget management
  • AI integration
    • Reviews tasks and assists with getting started
    • Integrated chat UI for quick access
  • Future Expansion
    • Timer and Reminder for tasks. Order by urgency.
    • Additional organization tools: Grouping tasks, creating own list order.
    • Better UI with additional simple features
    • Google Account integration for calender.

Project Structure

backend/
  main.py        # App setup: CORS, db, router
  auth.py        # Password hashing, JWT create/verify, current-user dependency
  models.py      # SQLAlchemy table models (User, Task)
  schemas.py     # Pydantic request/response shapes
  database.py    # Engine, session factory, get_db dependency
  routers/
    auth.py      # /auth routes: register, login, me
    tasks.py     # /tasks routes: list, create, update, delete
frontend/
  src/
    App.jsx      # Session handling, auth-gated app shell
    AuthForm.jsx # Login/register form
    api.js       # Fetch helpers for the backend API

Prereqs

  • Python 3.14+ with a virtual environment at backend/.venv
  • Node.js 22.12+ (or 20.19+)

Backend

cd backend
.venv\Scripts\python.exe -m pip install -r requirements.txt

Create backend/.env with a random secret (generate one with python -c "import secrets; print(secrets.token_hex(32))"):

AUTH_SECRET_KEY=<your-generated-secret>

AI Usage Disclosure

AI was utilized in this project for code consultation, including review, debugging, and guidance surrounding features unfamiliar to me. Code was written by me.

Run

# Terminal 1 — backend (http://localhost:8000)
cd backend
.venv\Scripts\python.exe -m uvicorn main:app --reload

# Terminal 2 — frontend (http://localhost:5173)
cd frontend
npm run dev

Open http://localhost:5173 for the app, or http://localhost:8000/docs for the interactive API explorer.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages