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.
- β 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
- β 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
- Docker and Docker Compose
- Node.js 18+ (for local development)
- Python 3.11+ (for local development)
- Clone the repository:
git clone https://github.com/adityabhalsod/fastapi-reactjs-crud
cd fastapi-reactjs-crud- Start all services:
docker-compose up --build- Seed the database with sample data:
node setup.js seed --dockerThis will create a demo user and 15 sample items:
- Username:
test - Password:
test - Email: test@example.com
- Access the application:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
- Database: localhost:5432
The project includes a convenient setup.js script for managing the application:
node setup.js setup # Complete setup (database + backend + frontend)
node setup.js backend-setup # Setup backend only (venv, dependencies)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)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 shellnode 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 servicesnode 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 statusnode setup.js help # Show all available commandsAfter 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)
- 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
The application foundation is complete! You can now:
- Start the services:
docker-compose up --build - Develop frontend pages: Complete the authentication and CRUD pages
- Test the API: Visit http://localhost:8000/docs for interactive API docs
- Customize the UI: Modify SCSS variables and components for your design
Built with β€οΈ using FastAPI and React













