A full-stack application built with TypeScript, featuring a React frontend with Tailwind CSS and shadcn/ui components, and a Node.js Express backend.
/
├── frontend/ # React + TypeScript frontend
│ ├── src/
│ ├── public/
│ └── package.json
├── backend/ # Node.js + Express backend
│ ├── src/
│ ├── dist/
│ └── package.json
└── package.json # Root package.json with scripts
- React 19 with TypeScript
- Vite for build tooling
- Tailwind CSS for styling
- shadcn/ui for UI components
- Lucide React for icons
- Python with Flask
- Flask web framework
- PostgreSQL database
- Redis for caching and sessions
- Flask-CORS for cross-origin requests
- Docker containerization
- Docker Compose for multi-service development
- DevContainer for consistent development environments
- Adminer for database management
- VS Code extensions and settings pre-configured
The easiest way to get started is using the DevContainer configuration which provides a consistent development environment across all team members.
- Docker Desktop
- Visual Studio Code with the Remote-Containers extension
- Clone the repository
- Open in VS Code
- Click "Reopen in Container" when prompted (or use Command Palette: "Remote-Containers: Reopen in Container")
- Wait for the container to build and initialize
The DevContainer will automatically:
- Set up Node.js 20 environment
- Install all dependencies
- Start PostgreSQL and Redis databases
- Configure VS Code extensions and settings
- Forward all necessary ports
- Frontend: http://localhost:5173 (Vite dev server)
- Backend API: http://localhost:3001
- PostgreSQL: localhost:5432
- Redis: localhost:6379
- Adminer (DB Admin): http://localhost:8080
- Node.js (v18 or higher) for frontend
- Python 3.11+ for backend
- npm or yarn
- PostgreSQL (optional if using Docker for DB only)
-
Install frontend dependencies:
cd frontend && npm install
-
Install backend dependencies:
cd backend && pip install -r requirements.txt
-
Start databases (if not using DevContainer):
docker-compose up postgres redis -d
Frontend:
cd frontend && npm run devBackend:
cd backend && python main.pyThis will start:
- Frontend on http://localhost:5173
- Backend on http://localhost:5000
Build frontend:
cd frontend && npm run buildGET /- Health checkGET /api/health- API health status
This project includes comprehensive VS Code configuration for streamlined development.
Install recommended extensions when prompted, or manually:
- Python support (ms-python.python)
- Black formatter (ms-python.black-formatter)
- TypeScript support
- Tailwind CSS IntelliSense
- Prettier
Use F5 or the Debug panel to:
- Python Backend - Debug the Flask backend
- Frontend Dev Server - Launch frontend with debugging
- Full Stack (Compound) - Launch both frontend and backend simultaneously
Use Ctrl+Shift+P → "Tasks: Run Task":
- Install Backend Dependencies -
pip install -r requirements.txt - Install Frontend Dependencies -
npm installin frontend - Install All Dependencies - Runs both installations in parallel
- Start Backend - Run Python Flask server
- Start Frontend - Run frontend dev server
- Build Frontend - Build frontend for production
- Docker Compose Up - Start all services (DB, Redis, etc.)
- Docker Compose Down - Stop all services
- Open project in VS Code
- Install recommended extensions when prompted
- Run task: Install All Dependencies
- Run task: Docker Compose Up (for databases)
- Press F5 and select Full Stack to launch both frontend and backend
- TypeScript for type safety
- ESLint for code linting
- Prettier for code formatting
- Vite HMR for hot module replacement
- Python with Flask
- Black formatter for code formatting
- Type hints support