A comprehensive learning management platform built with Next.js 14
๐ Live Demo โข ๐ Documentation โข ๐ ๏ธ Installation โข ๐ก Features
- ๐ฏ Overview
- โจ Features
- ๐ ๏ธ Technology Stack
- ๐ Live Demo
- ๐ป Installation
- ๐ง Configuration
- ๐ฑ Usage
- ๐๏ธ Database Schema
- ๐ Authentication
- ๐ API Documentation
- ๐จ UI Components
- ๐ข Deployment
- ๐ค Contributing
- ๐ License
SkillSphere is a modern, full-stack personal learning management platform designed to help users organize, track, and enhance their learning journey. Built with Next.js 14 and the latest web technologies, it provides a comprehensive suite of tools for goal setting, note-taking, content creation, and progress analytics.
- ๐ฏ Goal-Oriented Learning - Set, track, and achieve learning objectives with milestone management
- ๐ Smart Note-Taking - Organize knowledge with categories, tags, and powerful search
- โ๏ธ Content Creation - Write and publish educational blog articles with markdown support
- ๐ Analytics Dashboard - Visual insights into learning progress and achievements
- ๐ Universal Search - Find content across all modules with advanced filtering
- โ๏ธ Profile Management - Complete account control with data export capabilities
- โ Create and track learning goals with priorities
- โ Milestone system for breaking down large objectives
- โ Progress tracking with visual indicators
- โ Due date management and status updates
- โ Goal categorization and filtering
- โ Rich text note creation and editing
- โ Category and tag organization
- โ Pin important notes for quick access
- โ Markdown support for formatted content
- โ Advanced search and filtering
- โ Write and publish educational articles
- โ Draft and publish workflow
- โ Comment system for engagement
- โ SEO-friendly URLs and metadata
- โ View and like tracking
- โ Learning progress visualization
- โ Achievement badge system
- โ Activity timeline and statistics
- โ Goal completion analytics
- โ Quick action shortcuts
- โ Cross-content search algorithm
- โ Advanced filtering by type, date, category
- โ Search history and suggestions
- โ Relevance-based result ranking
- โ Real-time search results
- โ User profile management
- โ Security and privacy controls
- โ Data export functionality
- โ Account settings and preferences
- โ Password management
- Next.js 14 - React framework with App Router
- React 18 - Component library with hooks
- Tailwind CSS - Utility-first CSS framework
- Lucide React - Beautiful icon library
- Recharts - Data visualization library
- Next.js API Routes - Serverless API endpoints
- NextAuth.js - Authentication solution
- Prisma - Modern ORM for database management
- bcryptjs - Password hashing
- SQLite - Development database
- PostgreSQL - Production database (recommended)
- Vercel - Hosting platform (recommended)
- Netlify - Alternative hosting
- Railway - Full-stack deployment
๐ Try SkillSphere Live
- Email: [email protected]
- Password: demo123
Feel free to explore all features! Demo data is reset daily.
- Node.js 18.x or higher
- npm or yarn package manager
- Git for version control
-
Clone the repository
git clone https://github.com/yourusername/skillsphere.git cd skillsphere -
Install dependencies
npm install # or yarn install -
Set up environment variables
cp .env.example .env.local
-
Configure your
.env.localfileDATABASE_URL="file:./dev.db" NEXTAUTH_URL="http://localhost:3000" NEXTAUTH_SECRET="your-secret-key-here"
-
Set up the database
npx prisma generate npx prisma db push
-
Start the development server
npm run dev # or yarn dev -
Open your browser
http://localhost:3000
| Variable | Description | Required | Default |
|---|---|---|---|
DATABASE_URL |
Database connection string | โ | file:./dev.db |
NEXTAUTH_URL |
Application URL | โ | http://localhost:3000 |
NEXTAUTH_SECRET |
Authentication secret key | โ | - |
For Development (SQLite):
npx prisma generate
npx prisma db pushFor Production (PostgreSQL):
# Update DATABASE_URL to PostgreSQL connection string
npx prisma generate
npx prisma db push-
Create an Account
- Visit
/registerto create your account - Or use the demo credentials above
- Visit
-
Set Your First Goal
- Navigate to the Goals section
- Click "Create New Goal"
- Add milestones to track progress
-
Take Notes
- Go to the Notes section
- Create your first note with categories and tags
- Use markdown for rich formatting
-
Write Articles
- Visit the Blog section
- Create and publish educational content
- Engage with the comment system
-
Track Progress
- Check your Dashboard for analytics
- View your learning statistics
- Celebrate achievements with badges
Goals โ New Goal โ Add Details โ Create Milestones โ Save
Search โ Enter Query โ Apply Filters โ Select Result
Dashboard โ View Charts โ Check Stats โ Quick Actions
erDiagram
User ||--o{ Goal : has
User ||--o{ Note : creates
User ||--o{ Blog : writes
User ||--o{ Comment : posts
Goal ||--o{ Milestone : contains
Blog ||--o{ Comment : receives
User {
string id PK
string name
string email UK
string password
string bio
datetime createdAt
datetime updatedAt
}
Goal {
string id PK
string title
string description
enum status
enum priority
datetime dueDate
int progress
string userId FK
}
Note {
string id PK
string title
string content
string tags
string category
boolean pinned
string userId FK
}
Blog {
string id PK
string title
string slug UK
string content
boolean published
boolean featured
int views
int likes
string userId FK
}
- User โ Goals (One-to-Many)
- User โ Notes (One-to-Many)
- User โ Blogs (One-to-Many)
- User โ Comments (One-to-Many)
- Goal โ Milestones (One-to-Many)
- Blog โ Comments (One-to-Many)
SkillSphere uses NextAuth.js for secure authentication:
- ๐ Credentials Authentication - Email and password
- ๐ก๏ธ Session Management - Secure server-side sessions
- ๐ Password Hashing - bcryptjs with salt rounds
- ๐ช Route Protection - Middleware-based auth guards
- ๐ค User Management - Complete profile control
POST /api/auth/signin - User login
POST /api/auth/signout - User logout
GET /api/auth/session - Get current session
POST /api/auth/signup - User registration
GET /api/goals - List user goals
POST /api/goals - Create new goal
PUT /api/goals/[id] - Update goal
DELETE /api/goals/[id] - Delete goal
GET /api/notes - List user notes
POST /api/notes - Create new note
PUT /api/notes/[id] - Update note
DELETE /api/notes/[id] - Delete note
GET /api/blogs - List blogs
POST /api/blogs - Create new blog
PUT /api/blogs/[id] - Update blog
DELETE /api/blogs/[id] - Delete blog
GET /api/search - Universal search
GET /api/search/history - Search history
POST /api/search/history - Save search
GET /api/dashboard/analytics - Dashboard data
GET /api/dashboard/stats - Quick statistics
src/components/
โโโ ui/ # Basic UI components
โ โโโ Button # Reusable button component
โ โโโ Input # Form input component
โ โโโ Modal # Modal dialog component
โ โโโ LoadingSpinner # Loading state component
โโโ shared/ # Shared components
โ โโโ Navigation # Main navigation bar
โ โโโ Layout # Page layout wrapper
โโโ feature/ # Feature-specific components
โโโ GoalCard # Goal display component
โโโ NoteEditor # Note editing interface
โโโ BlogPost # Blog article display
โโโ SearchResults # Search results display
- ๐จ Color Palette - Consistent color scheme
- ๐ Typography - Responsive font scaling
- ๐ฒ Spacing - Uniform spacing system
- ๐ฑ Responsive - Mobile-first design
- โฟ Accessibility - ARIA labels and keyboard navigation
-
Connect GitHub Repository
# Push to GitHub git push origin main -
Deploy to Vercel
- Visit vercel.com
- Import your repository
- Add environment variables
- Deploy automatically
-
Set Environment Variables
DATABASE_URL=your_postgres_url NEXTAUTH_URL=https://your-app.vercel.app NEXTAUTH_SECRET=your_production_secret
Netlify:
npm run build
npm run export
# Deploy 'out' folder to NetlifyRailway:
railway login
railway init
railway add postgresql
railway deploy- Environment variables configured
- Database migrated to PostgreSQL
- SSL certificate enabled
- Custom domain configured (optional)
- Analytics enabled
- Error monitoring setup
We welcome contributions to SkillSphere! Here's how you can help:
-
Fork the repository
-
Create a feature branch
git checkout -b feature/amazing-feature
-
Make your changes
-
Run tests
npm run test npm run lint -
Commit your changes
git commit -m 'Add amazing feature' -
Push to your branch
git push origin feature/amazing-feature
-
Open a Pull Request
- ๐ Clear commit messages - Describe what and why
- ๐งช Test your changes - Ensure nothing breaks
- ๐ Update documentation - Keep docs current
- ๐จ Follow code style - Use existing patterns
- ๐ Code review - All PRs need review
- ๐ Bug fixes - Help improve stability
- โจ New features - Add exciting capabilities
- ๐ Documentation - Improve guides and docs
- ๐จ UI/UX improvements - Enhance user experience
- ๐ง Performance optimization - Make it faster
- ๐งช Testing - Add test coverage
- Real-time collaboration features
- Mobile app (React Native)
- AI-powered learning suggestions
- Advanced analytics and reporting
- Team collaboration tools
- Integration with external learning platforms
- Gamification and learning streaks
- Social learning features
- Video content support
- Offline mode capabilities
- API for third-party integrations
- Advanced search with AI
This project is licensed under the MIT License - see the LICENSE.md file for details.
MIT License
MIT License
Copyright (c) 2025 Dumindu Thushan
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
- Next.js Team - For the amazing React framework
- Vercel - For the incredible deployment platform
- Prisma Team - For the excellent ORM
- Tailwind CSS - For the utility-first CSS framework
- NextAuth.js - For the authentication solution
- Open Source Community - For the endless inspiration
- Create an issue
- Include steps to reproduce
- Add screenshots if helpful
- Open a feature request
- Describe the feature and use case
- Explain why it would be valuable
- Check the documentation
- Search existing issues
- Contact: [email protected]
โญ Star this repository if you found it helpful!
๐ Live Demo โข ๐ Documentation โข ๐ Report Bug โข ๐ก Request Feature
Built with โค๏ธ by codedbydumi , using Next.js 14