"Where Students Thrive Together"
A clean, community-driven academic platform for students to access past questions, quizzes, notes, and collaborate with peers to study effectively.
- Past Questions Library - Access years of past exam questions organized by course and semester
- Community Notes - Rich-text notes with voting, saving, and commenting
- Interactive Quizzes - Timed quizzes with instant feedback and explanations
- Level-based Hierarchy - 100L β 200L β 300L β 400L
- Course Organization - Browse courses by department and credit units
- Smart Search - Global search with keyboard shortcut (βK)
- Voting System - Upvote/downvote notes to surface quality content
- Comments - Discuss and clarify concepts with peers
- Leaderboard - Compete for top contributor status
- Request System - Request missing study materials
- Notion-like Interface - Clean, minimalistic design
- Dark Mode Support - Easy on the eyes during late-night study sessions
- Responsive Design - Works on desktop and mobile
- Resizable Sidebar - Customize your workspace
- Node.js 16.8 or later
- npm, yarn, or pnpm
- Clone the repository:
git clone <your-repo-url>
cd notion-clone-nextjs- Install dependencies:
npm install- Run the development server:
npm run dev- Open your browser: Navigate to http://localhost:3000
βββ app/
β βββ (main)/ # Main application
β β βββ (routes)/
β β βββ levels/ # Levels browsing
β β βββ courses/[courseId] # Course details with resources
β β βββ notes/[noteId] # Note viewer with comments
β β βββ quizzes/[quizId] # Interactive quiz
β β βββ leaderboard/ # Rankings
β β βββ requests/ # Resource requests
β β βββ saved/ # Saved notes
β βββ (marketing)/ # Landing page
β βββ (public)/ # Public preview pages
βββ components/
β βββ modals/ # Modal dialogs
β βββ providers/ # Context providers
β βββ ui/ # shadcn/ui components
βββ hooks/ # Custom React hooks
βββ lib/
βββ api/ # Axios client & service layers
βββ utils.ts # Helper functions
βββ query-client.ts # React Query client
- Primary: Amber/Orange gradient (
#f59e0bβ#ea580c) - Background:
#f7f7f7(light) /#1F1F1F(dark) - Cards:
#ffffff(light) / dark variants - Accent Colors:
- Blue for quizzes
- Green for success states
- Purple for special features
- Font: Plus Jakarta Sans (via Next.js font optimization)
- Headings: Bold, clear hierarchy
- Body: Clean, readable text
Built on shadcn/ui with custom styling:
- Buttons with amber accent
- Cards with hover effects
- Dialog modals
- Dropdown menus
- Command palette (search)
| Role | Permissions |
|---|---|
| Student | Browse, download, create notes, vote, comment, save |
| Rep | Upload PQs, create quizzes, moderate notes |
| Admin | Full access, manage users, platform analytics |
- Levels β Contains courses
- Courses β Contains resources (PQs, Notes, Quizzes)
- Community Notes β Rich text with voting/comments
- Quizzes β Timed MCQ assessments
- Requests β Student requests for materials
reputation = (noteUpvotes Γ 2) + saves + quizScores + comments - downvotes
| Layer | Technology |
|---|---|
| Framework | Next.js 13 (App Router) |
| Language | TypeScript |
| Styling | Tailwind CSS |
| UI Components | shadcn/ui |
| State | Zustand |
| Notifications | Sonner |
| Icons | Lucide React |
npm run dev # Start development server
npm run build # Build for production
npm start # Start production server
npm run lint # Run ESLintStudyHive now talks directly to the backend defined by NEXT_PUBLIC_API_BASE_URL (defaults to http://localhost:5000).
All modules use the shared Axios client in lib/api/client.ts, with token refresh + error handling baked in. Service files live in lib/api/services/* and are consumed via React Query hooks for caching and optimistic updates.
/api/auth/*for authentication + token refresh/api/levels,/api/coursesfor academic hierarchy/api/community-notes,/api/past-questions,/api/quizzes,/api/requests/api/upload/presigned-urlfor the two-step R2 upload flow
Update .env.local if your API runs elsewhere:
NEXT_PUBLIC_API_BASE_URL=http://localhost:5000
- Requires the StudyHive API to be running locally (or configure
NEXT_PUBLIC_API_BASE_URL) - Some admin-only workflows are stubbed in the UI until server endpoints are finalized
- Real-time updates (websocket/pusher) are not implemented yet
POST /auth/signup
POST /auth/login
POST /auth/refresh
GET /levels
GET /levels/:id/courses
GET /courses/:id
GET /pq/:courseId
POST /pq
GET /notes/:courseId
POST /notes
POST /notes/:id/upvote
POST /notes/:id/save
GET /quiz/:courseId
POST /quiz/attempt
POST /requests
GET /requests
GET /leaderboard
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is open source and available for learning and building your own projects.
- shadcn/ui - Beautiful UI components
- Lucide - Beautiful icons
- Next.js - React framework
- Tailwind CSS - Utility-first CSS
StudyHive - Where students thrive together π