A modern learning platform built with React + TypeScript + Node.js + Express.
- 🎨 Minimalist dark mode UI with purple/pink/cyan gradients
- 📚 Course library and management
- 📅 Calendar for study sessions
- 👥 Social features (Study Groups & Hackathons)
- 👤 User profile and progress tracking
- 🔒 Protected routing with localStorage authentication
- 🚀 Node.js/Express backend API
- React 18
- TypeScript
- Vite
- TailwindCSS
- React Router
- Lucide Icons
- Node.js
- Express
- CORS enabled
- RESTful API
npm installOption 1: Run both frontend and backend together
npm run dev:allOption 2: Run separately
Terminal 1 - Backend Server:
npm run dev:serverServer runs on http://localhost:3001
Terminal 2 - Frontend:
npm run devFrontend runs on http://localhost:5173
npm run build├── server/
│ └── index.js # Express backend server
├── src/
│ ├── components/ # Reusable components (Navbar, ProtectedRoute)
│ ├── pages/ # Page components (Login, Dashboard, Calendar, etc.)
│ ├── data/ # JSON data files (used by backend)
│ ├── utils/
│ │ └── api.ts # API utility functions
│ ├── App.tsx # Main app component with routing
│ └── main.tsx # Entry point
└── package.json
GET /api/health- Server health check
GET /api/books- Get all booksPOST /api/books- Create a new book
GET /api/events- Get all eventsPOST /api/events- Create a new eventDELETE /api/events/:id- Delete an event
GET /api/groups- Get all groupsPOST /api/groups- Create a new group
GET /api/users- Get all usersGET /api/users/:id- Get user by IDPOST /api/users- Create a new user
POST /api/auth/login- Login (returns mock token)POST /api/auth/logout- Logout
- Login: Simple authentication with localStorage
- Dashboard: Overview with stats and quick access cards
- Calendar: Study sessions and events
- Library: Browse and manage courses
- Social: Study groups and hackathon matchmaking
- Profile: User profile and course progress
- Backend API is available at
http://localhost:3001/api - Vite proxy is configured to forward
/apirequests to the backend - Authentication is handled via localStorage (fake login for MVP)
- Data is stored in JSON files in
src/data/ - Dark theme with gradient accents throughout