Project: Blog Platform
Overview
Build a full-featured blog platform with routing, authentication, and CMS capabilities.
Core Features
1. Public Pages
- Home page with latest posts
- Post listing with pagination
- Single post view
- Category pages
- Tag pages
- Search functionality
- Author pages
2. Authentication
- User login/register
- JWT authentication
- Protected routes
- Role-based access (admin, author, reader)
3. Author Dashboard
- Create/edit/delete posts
- Draft system
- Rich text editor
- Image uploads
- Post analytics
4. Admin Dashboard
- User management
- Post moderation
- Category management
- Site settings
- Analytics overview
5. Features
- Markdown support
- Syntax highlighting for code
- Comments system
- Like/bookmark posts
- Share on social media
- RSS feed
- SEO optimization
Technical Requirements
Tech Stack
- React 18+ with TypeScript
- React Router
- State management (Zustand or Redux Toolkit)
- Rich text editor (TipTap or Slate)
- Markdown (react-markdown)
- Code highlighting (Prism)
- Form validation (React Hook Form + Zod)
Backend
- Node.js + Express + MongoDB
- OR Firebase/Supabase
- OR JSON Server (mock API)
Routes
/ - Home
/posts - All posts
/posts/:slug - Single post
/category/:name - Category posts
/author/:id - Author profile
/login - Login page
/register - Register page
/dashboard - Author dashboard
/dashboard/posts/new - Create post
/dashboard/posts/:id/edit - Edit post
/admin - Admin panel
State Management
Global State
- User authentication
- Theme (light/dark)
- Notifications
Local State
- Form data
- UI state (modals, dropdowns)
- Filter/sort state
File Structure
src/
├── components/
│ ├── common/
│ ├── layout/
│ ├── post/
│ └── admin/
├── pages/
│ ├── Home.tsx
│ ├── PostList.tsx
│ ├── PostDetail.tsx
│ ├── Dashboard.tsx
│ └── Admin.tsx
├── hooks/
├── services/
├── store/
├── types/
└── utils/
Bonus Features
- Draft auto-save
- Post scheduler
- Email notifications
- Reading time estimate
- Related posts
- Table of contents
- Dark mode
- PWA support
- Internationalization
Timeline
Week 1: Core Setup
- Project setup
- Routing
- Authentication
- Basic layouts
Week 2: Features
- Post CRUD
- Rich text editor
- Image uploads
- Comments
Week 3: Polish
- Styling
- Performance
- Testing
- Deployment
Evaluation Criteria
- Code quality
- Feature completeness
- Performance
- UI/UX
- Accessibility
- Security
Time Estimate
20-25 hours over 2-3 weeks