A production-style full-stack boilerplate for interview preparation. This project is intentionally incomplete - core business logic is left as TODOs for manual implementation.
This scaffold demonstrates:
- Clean, scalable architecture patterns
- Separation of concerns (layered architecture)
- Production-ready project structure
- Best practices for both frontend and backend
Perfect for:
- Interview preparation
- Learning full-stack architecture
- Understanding production patterns
- Building a portfolio project
TaskManager/
├── frontend/ # React + Vite + TypeScript
│ ├── src/
│ │ ├── routes/ # Route definitions
│ │ ├── pages/ # Page components
│ │ ├── components/ # Reusable components
│ │ ├── hooks/ # Custom React hooks
│ │ ├── services/ # API services
│ │ └── context/ # React Context
│ └── README.md
├── backend/ # Node.js + Express + TypeScript
│ ├── src/
│ │ ├── routes/ # API routes
│ │ ├── controllers/ # Request handlers
│ │ ├── services/ # Business logic
│ │ ├── repositories/ # Data access
│ │ ├── middleware/ # Express middleware
│ │ ├── utils/ # Utility functions
│ │ ├── config/ # Configuration
│ │ └── errors/ # Error handling
│ └── README.md
├── tickets.md # Implementation tickets with learning questions
└── README.md # This file
- Node.js 18+
- npm or yarn
cd frontend
npm install
npm run devFrontend runs on http://localhost:5173
cd backend
npm install
cp .env.example .env
npm run devBackend runs on http://localhost:3001
- ✅ Express server with TypeScript
- ✅ Environment variable support
- ✅ Centralized error handler
- ✅ Logging middleware
- ✅ Health check endpoint (
GET /api/health) - ✅ Folder structure (routes, controllers, services, repositories)
- ✅ React + Vite + TypeScript setup
- ✅ React Router configuration
- ✅ Basic routing structure
- ✅ Placeholder pages
- ✅ Project structure (pages, components, hooks, services, context)
- ❌ Authentication (JWT)
- ❌ Authorization / roles
- ❌ Database integration
- ❌ Validation logic
- ❌ Business logic (CRUD operations)
- ❌ API integration
- ❌ Protected routes
- ❌ State management
See tickets.md for step-by-step implementation tickets.
Each ticket includes:
- Clear implementation steps
- Interview-style learning questions
- Architecture considerations
- Best practices
Recommended order:
- Backend tickets (1-5)
- Frontend tickets (6-10)
- Integration tickets (11-12)
- Advanced topics (13-14)
Layered Architecture:
Routes → Controllers → Services → Repositories
- Routes: Define API endpoints
- Controllers: Handle HTTP requests/responses
- Services: Contain business logic
- Repositories: Handle data access
Component-Based:
Pages → Components → Hooks → Services
- Pages: Top-level route components
- Components: Reusable UI components
- Hooks: Custom React hooks for logic
- Services: API calls and business logic
Each ticket in tickets.md includes learning-check questions covering:
- Architecture decisions
- Security considerations
- Performance optimization
- Testing strategies
- Common pitfalls
- Never commit
.envfiles - Use strong JWT secrets in production
- Validate all user inputs
- Use HTTPS in production
- Implement rate limiting
- Sanitize user data
- This is a learning scaffold - implement features yourself
- Follow the tickets in order for best learning experience
- Answer learning-check questions after implementation
- Research topics you're unsure about
- Document your decisions
This is a learning project. Feel free to:
- Implement the TODOs
- Add your own features
- Improve the structure
- Share your solutions
MIT License - feel free to use this for learning and interviews.