Skip to content

A modern full-stack CRUD application with FastAPI backend, React TypeScript frontend, JWT authentication, PostgreSQL database, and Docker containerization. Features glassmorphism UI design with Tailwind CSS.

Notifications You must be signed in to change notification settings

adityabhalsod/fastapi-reactjs-crud

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

15 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

FastAPI + React CRUD Application

A modern full-stack CRUD application built with FastAPI (Python) backend and React (TypeScript) frontend, featuring JWT authentication and modern UI design with SCSS and Tailwind CSS.

Features

Backend (FastAPI)

  • βœ… JWT Authentication (login, signup, forgot/reset password)
  • βœ… Full CRUD operations for items
  • βœ… Advanced filtering, pagination, and search
  • βœ… Statistics endpoint for dashboard
  • βœ… PostgreSQL database with SQLAlchemy ORM
  • βœ… Automatic API documentation (Swagger/OpenAPI)
  • βœ… Docker containerized

Frontend (React + TypeScript)

  • βœ… Modern responsive UI with Tailwind CSS + SCSS
  • βœ… Type-safe with TypeScript interfaces
  • βœ… React Router for navigation
  • βœ… Authentication context for state management
  • βœ… Glassmorphism design with animations
  • βœ… Native Fetch API for HTTP requests
  • βœ… Docker containerized

Screenshots

Authentication

Login Page

Login

Signup Page

Signup Signup Form

Forgot Password

Forgot Password

Dashboard

Dashboard Overview

Complete Dashboard

Empty Dashboard

Dashboard Empty

User Menu

Dropdown Menu

Items Management

Items List - Empty State

Empty Table

Items List - With Data

Table with Data Complete Table

Create New Item

Create Item

Edit Item

Edit Item

Item Details

Item Details

Delete Confirmation

Delete Confirmation

Quick Start

Prerequisites

  • Docker and Docker Compose
  • Node.js 18+ (for local development)
  • Python 3.11+ (for local development)

Run with Docker (Recommended)

  1. Clone the repository:
git clone https://github.com/adityabhalsod/fastapi-reactjs-crud
cd fastapi-reactjs-crud
  1. Start all services:
docker-compose up --build
  1. Seed the database with sample data:
node setup.js seed --docker

This will create a demo user and 15 sample items:

  1. Access the application:

Setup Commands

The project includes a convenient setup.js script for managing the application:

Initial Setup

node setup.js setup              # Complete setup (database + backend + frontend)
node setup.js backend-setup      # Setup backend only (venv, dependencies)

Development

node setup.js docker             # Start with Docker (recommended)
node setup.js backend            # Start backend server (local)
node setup.js frontend           # Start frontend dev server (local)

Database Management

node setup.js seed               # Seed database with sample data (local)
node setup.js seed --docker      # Seed database with sample data (Docker)
node setup.js reset              # Reset database (DELETE ALL DATA)
node setup.js shell-db           # Open PostgreSQL shell

Docker Commands

node setup.js docker-build       # Build and start all services
node setup.js up                 # Start Docker services
node setup.js down               # Stop Docker services
node setup.js restart            # Restart Docker services

Logs & Monitoring

node setup.js logs               # View all service logs
node setup.js logs-backend       # View backend logs
node setup.js logs-frontend      # View frontend logs
node setup.js status             # Show service status

Help

node setup.js help               # Show all available commands

Sample Data

After seeding the database, you'll have access to:

  • 1 demo user (username: test, password: test)
  • 15 sample items across multiple categories:
    • Electronics (Laptop, Mouse, Keyboard, Webcam, etc.)
    • Accessories (USB Hub, Monitor Stand, Cable Management, etc.)
    • Furniture (Office Chair, Desk Lamp)
    • Stationery (Notebooks, Pens, Desk Organizer)

Development Status

βœ… Completed Core Infrastructure

  • Project structure setup
  • Docker configuration (PostgreSQL, FastAPI, React)
  • Backend API implementation with all endpoints
  • Database models and schemas
  • JWT authentication system
  • Frontend basic structure with routing
  • TypeScript interfaces
  • SCSS styling system with variables and mixins
  • API integration utilities
  • Authentication context

🚧 Ready for Development

The application foundation is complete! You can now:

  1. Start the services: docker-compose up --build
  2. Develop frontend pages: Complete the authentication and CRUD pages
  3. Test the API: Visit http://localhost:8000/docs for interactive API docs
  4. Customize the UI: Modify SCSS variables and components for your design

Built with ❀️ using FastAPI and React

About

A modern full-stack CRUD application with FastAPI backend, React TypeScript frontend, JWT authentication, PostgreSQL database, and Docker containerization. Features glassmorphism UI design with Tailwind CSS.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published