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
ProtectedRoute
wrapper 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.js
for design tokens - Update
tailwind.config.js
for 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! 🎉