A modern, full-featured React application built with TypeScript, Tailwind CSS, and React Router. This starter kit demonstrates best practices for building scalable React applications with authentication, state management, and responsive design.
- Authentication System - JWT-like mock authentication with protected routes
- Project Management - Create, view, edit, and delete projects
- Task Management - Add tasks to projects with priority levels and due dates
- Progress Tracking - Visual progress indicators for project completion
- Responsive Design - Mobile-first design with Tailwind CSS
- Dark Mode - Toggle between light and dark themes
- Form Validation - Client-side validation with error handling
- Local Storage - Data persistence using browser storage
- TypeScript - Full type safety throughout the application
- React Router v6 - Modern routing with protected routes
- Context API - Lightweight state management for auth and theme
- Custom Hooks - Reusable logic for API calls and form handling
- Component Library - Reusable UI components (Button, Input, Modal, etc.)
- Mock API - Simulated backend with localStorage persistence
- Error Handling - Comprehensive error states and loading indicators
- Frontend Framework: React 19 with TypeScript
- Styling: Tailwind CSS with custom design tokens
- Routing: React Router DOM v6
- Icons: Lucide React
- Build Tool: Vite
- Package Manager: npm
-
Clone the repository
git clone <repository-url> cd react-starter-kit
-
Install dependencies
npm install
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:3000
This app uses mock authentication for demonstration purposes:
- Login: Use any email and password combination
- Demo User: The app will automatically log you in as "Demo User"
- Persistence: Authentication state is saved in localStorage
- Protected Routes: Dashboard and project pages require authentication
src/
├── components/ # Reusable UI components
│ ├── ui/ # Base UI components (Button, Input, Modal, etc.)
│ ├── ProjectCard.tsx # Project display component
│ └── ProtectedRoute.tsx # Authentication wrapper
├── contexts/ # React Context providers
│ ├── AuthContext.tsx # Authentication state management
│ └── ThemeContext.tsx # Dark/light theme management
├── layout/ # Layout components
│ └── Header.tsx # Navigation header
├── pages/ # Page components
│ ├── auth/ # Authentication pages
│ │ └── LoginPage.tsx
│ ├── DashboardPage.tsx
│ ├── ProjectDetailsPage.tsx
│ └── NotFoundPage.tsx
├── services/ # API and data services
│ ├── api.ts # Mock API functions
│ └── mockData.ts # Sample data
├── types/ # TypeScript type definitions
│ └── index.ts
├── theme.js # Design tokens and theme configuration
├── App.tsx # Main application component
└── main.tsx # Application entry point
The app uses a consistent design system built with Tailwind CSS:
- Primary: Blue color palette for main actions
- Gray: Neutral colors for text and backgrounds
- Success: Green for completed tasks
- Warning: Yellow for medium priority
- Error: Red for high priority and errors
- Button: Multiple variants (primary, secondary, outline, ghost)
- Input: Form inputs with validation states
- Modal: Overlay dialogs for forms and confirmations
- Card: Content containers with hover effects
- Mobile-first approach
- Breakpoints: sm (640px), md (768px), lg (1024px), xl (1280px)
- Flexible grid layouts
- Touch-friendly interactions
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
/login- Authentication page
/dashboard- Project overview and management/project/:id- Individual project details and task management
/- Redirects to dashboard/*- 404 Not Found page
- Create a new component in
src/pages/ - Add the route to
src/App.tsx - Import and use the
ProtectedRoutewrapper if needed
- Create reusable components in
src/components/ - Follow the existing naming conventions
- Use TypeScript interfaces for props
- Include proper error handling and loading states
- API Integration: Extend
src/services/api.ts - State Management: Use Context API or create custom hooks
- Styling: Use Tailwind classes and extend the theme in
tailwind.config.js - Validation: Add form validation using the existing patterns
- Modify
src/theme.jsfor design tokens - Update
tailwind.config.jsfor custom utilities - Add new component variants in
src/index.css
This starter kit demonstrates:
- Modern React Patterns: Hooks, Context, TypeScript
- State Management: Context API for global state
- Routing: Protected routes and navigation
- Form Handling: Controlled inputs and validation
- API Integration: Mock services with error handling
- Responsive Design: Mobile-first approach
- Component Architecture: Reusable, composable components
- Type Safety: Full TypeScript implementation
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is open source and available under the MIT License.
If you encounter any issues or have questions:
- Check the existing documentation
- Review the code comments
- Open an issue on GitHub
- Contact the maintainers
Happy Coding! 🎉