Skip to content

A comprehensive personal learning management platform with goal tracking, smart notes, blog publishing, and analytics dashboard. Built with Next.js 14, Prisma, and PostgreSQL.

License

Notifications You must be signed in to change notification settings

codedbydumi/skillsphere

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

60 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŒŸ SkillSphere - Personal Learning Management Platform

A comprehensive learning management platform built with Next.js 14

Next.js React Prisma Tailwind CSS

๐Ÿš€ Live Demo โ€ข ๐Ÿ“– Documentation โ€ข ๐Ÿ› ๏ธ Installation โ€ข ๐Ÿ’ก Features


๐Ÿ“‹ Table of Contents


๐ŸŽฏ Overview

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.

๐ŸŒŸ Why SkillSphere?

  • ๐ŸŽฏ 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

โœจ Features

๐ŸŽฏ Goal Management

  • โœ… 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

๐Ÿ“ Note-Taking System

  • โœ… 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

โœ๏ธ Blog Platform

  • โœ… Write and publish educational articles
  • โœ… Draft and publish workflow
  • โœ… Comment system for engagement
  • โœ… SEO-friendly URLs and metadata
  • โœ… View and like tracking

๐Ÿ“Š Analytics Dashboard

  • โœ… Learning progress visualization
  • โœ… Achievement badge system
  • โœ… Activity timeline and statistics
  • โœ… Goal completion analytics
  • โœ… Quick action shortcuts

๐Ÿ” Universal Search

  • โœ… Cross-content search algorithm
  • โœ… Advanced filtering by type, date, category
  • โœ… Search history and suggestions
  • โœ… Relevance-based result ranking
  • โœ… Real-time search results

โš™๏ธ Profile & Settings

  • โœ… User profile management
  • โœ… Security and privacy controls
  • โœ… Data export functionality
  • โœ… Account settings and preferences
  • โœ… Password management

๐Ÿ› ๏ธ Technology Stack

Frontend

Backend

Database

Deployment

  • Vercel - Hosting platform (recommended)
  • Netlify - Alternative hosting
  • Railway - Full-stack deployment

๐Ÿš€ Live Demo

๐Ÿ”— Try SkillSphere Live

Demo Credentials:

Feel free to explore all features! Demo data is reset daily.


๐Ÿ’ป Installation

Prerequisites

  • Node.js 18.x or higher
  • npm or yarn package manager
  • Git for version control

Quick Start

  1. Clone the repository

    git clone https://github.com/yourusername/skillsphere.git
    cd skillsphere
  2. Install dependencies

    npm install
    # or
    yarn install
  3. Set up environment variables

    cp .env.example .env.local
  4. Configure your .env.local file

    DATABASE_URL="file:./dev.db"
    NEXTAUTH_URL="http://localhost:3000"
    NEXTAUTH_SECRET="your-secret-key-here"
  5. Set up the database

    npx prisma generate
    npx prisma db push
  6. Start the development server

    npm run dev
    # or
    yarn dev
  7. Open your browser

    http://localhost:3000
    

๐Ÿ”ง Configuration

Environment Variables

Variable Description Required Default
DATABASE_URL Database connection string โœ… file:./dev.db
NEXTAUTH_URL Application URL โœ… http://localhost:3000
NEXTAUTH_SECRET Authentication secret key โœ… -

Database Setup

For Development (SQLite):

npx prisma generate
npx prisma db push

For Production (PostgreSQL):

# Update DATABASE_URL to PostgreSQL connection string
npx prisma generate
npx prisma db push

๐Ÿ“ฑ Usage

Getting Started

  1. Create an Account

    • Visit /register to create your account
    • Or use the demo credentials above
  2. Set Your First Goal

    • Navigate to the Goals section
    • Click "Create New Goal"
    • Add milestones to track progress
  3. Take Notes

    • Go to the Notes section
    • Create your first note with categories and tags
    • Use markdown for rich formatting
  4. Write Articles

    • Visit the Blog section
    • Create and publish educational content
    • Engage with the comment system
  5. Track Progress

    • Check your Dashboard for analytics
    • View your learning statistics
    • Celebrate achievements with badges

Key Workflows

๐Ÿ“ Creating a Goal with Milestones

Goals โ†’ New Goal โ†’ Add Details โ†’ Create Milestones โ†’ Save

๐Ÿ” Finding Content Quickly

Search โ†’ Enter Query โ†’ Apply Filters โ†’ Select Result

๐Ÿ“Š Viewing Analytics

Dashboard โ†’ View Charts โ†’ Check Stats โ†’ Quick Actions

๐Ÿ—„๏ธ Database Schema

Core Models

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
    }
Loading

Relationships

  • 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)

๐Ÿ” Authentication

SkillSphere uses NextAuth.js for secure authentication:

Features

  • ๐Ÿ” 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

API Endpoints

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

๐Ÿ“Š API Documentation

Goals API

GET    /api/goals         - List user goals
POST   /api/goals         - Create new goal
PUT    /api/goals/[id]    - Update goal
DELETE /api/goals/[id]    - Delete goal

Notes API

GET    /api/notes         - List user notes
POST   /api/notes         - Create new note
PUT    /api/notes/[id]    - Update note
DELETE /api/notes/[id]    - Delete note

Blog API

GET    /api/blogs         - List blogs
POST   /api/blogs         - Create new blog
PUT    /api/blogs/[id]    - Update blog
DELETE /api/blogs/[id]    - Delete blog

Search API

GET    /api/search        - Universal search
GET    /api/search/history - Search history
POST   /api/search/history - Save search

Analytics API

GET    /api/dashboard/analytics - Dashboard data
GET    /api/dashboard/stats     - Quick statistics

๐ŸŽจ UI Components

Component Library

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

Design System

  • ๐ŸŽจ Color Palette - Consistent color scheme
  • ๐Ÿ“ Typography - Responsive font scaling
  • ๐Ÿ”ฒ Spacing - Uniform spacing system
  • ๐Ÿ“ฑ Responsive - Mobile-first design
  • โ™ฟ Accessibility - ARIA labels and keyboard navigation

๐Ÿšข Deployment

Vercel (Recommended)

  1. Connect GitHub Repository

    # Push to GitHub
    git push origin main
  2. Deploy to Vercel

    • Visit vercel.com
    • Import your repository
    • Add environment variables
    • Deploy automatically
  3. Set Environment Variables

    DATABASE_URL=your_postgres_url
    NEXTAUTH_URL=https://your-app.vercel.app
    NEXTAUTH_SECRET=your_production_secret

Alternative Platforms

Netlify:

npm run build
npm run export
# Deploy 'out' folder to Netlify

Railway:

railway login
railway init
railway add postgresql
railway deploy

Production Checklist

  • Environment variables configured
  • Database migrated to PostgreSQL
  • SSL certificate enabled
  • Custom domain configured (optional)
  • Analytics enabled
  • Error monitoring setup

๐Ÿค Contributing

We welcome contributions to SkillSphere! Here's how you can help:

Development Setup

  1. Fork the repository

  2. Create a feature branch

    git checkout -b feature/amazing-feature
  3. Make your changes

  4. Run tests

    npm run test
    npm run lint
  5. Commit your changes

    git commit -m 'Add amazing feature'
  6. Push to your branch

    git push origin feature/amazing-feature
  7. Open a Pull Request

Contribution Guidelines

  • ๐Ÿ“ 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

Areas for Contribution

  • ๐Ÿ› 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

๐Ÿ“ˆ Roadmap

๐Ÿš€ Version 2.0 (Coming Soon)

  • Real-time collaboration features
  • Mobile app (React Native)
  • AI-powered learning suggestions
  • Advanced analytics and reporting
  • Team collaboration tools
  • Integration with external learning platforms

๐Ÿ”ฎ Future Ideas

  • Gamification and learning streaks
  • Social learning features
  • Video content support
  • Offline mode capabilities
  • API for third-party integrations
  • Advanced search with AI

๐Ÿ“„ License

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.

๐Ÿ™ Acknowledgments

  • 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

๐Ÿ“ž Support

๐Ÿ› Found a Bug?

  • Create an issue
  • Include steps to reproduce
  • Add screenshots if helpful

๐Ÿ’ก Have a Feature Request?

  • Open a feature request
  • Describe the feature and use case
  • Explain why it would be valuable

๐Ÿ“ง Need Help?


โญ Star this repository if you found it helpful!

๐Ÿš€ Live Demo โ€ข ๐Ÿ“– Documentation โ€ข ๐Ÿ› Report Bug โ€ข ๐Ÿ’ก Request Feature

Built with โค๏ธ by codedbydumi , using Next.js 14

About

A comprehensive personal learning management platform with goal tracking, smart notes, blog publishing, and analytics dashboard. Built with Next.js 14, Prisma, and PostgreSQL.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published