Skip to content

KD2303/skillflare

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MITS SkillFlare πŸŽ“

A comprehensive student talent marketplace and mentorship platform for MITS. It empowers students and teachers to collaborate seamlessly through a task-based economy, professional mentorships, real-time messaging, and intelligent AI assistance.

MITS SkillFlare

🌟 Key Features

For Students

  • Browse Tasks: Discover tasks posted by teachers, mentors, and peers.
  • Take & Complete Tasks: Gain hands-on experience and earn credit points for valid submissions.
  • Mentorship: Connect with experienced developers and mentors or apply to become one.
  • Build Portfolio: Showcase completed work and earn badges on your profile.
  • Leaderboard: Compete with peers and climb the ranks using gamified credit points.

For Mentors

  • Become a Mentor: Apply by detailing skills, coding profiles, and professional links.
  • Manage Profile: Update your availability dynamically and adjust technical skillsets.
  • Guide Students: Accept mentorship requests and conduct 1-on-1 sessions.

For Teachers

  • Post Tasks: Create assignments with descriptions, deadlines, and credit point rewards.
  • Review Submissions: Approve completed tasks or request revisions with direct feedback.
  • Rate Students: Provide constructive ratings to boost student portfolios.
  • Monitor Progress: Track the completion pipeline of posted tasks through the dashboard.

πŸ€– Buddy AI Assistant (Powered by Ollama)

SkillFlare comes with an embedded, context-aware AI named Buddy AI.

  • Built on a dynamic backend architecture connected to Ollama (Mistral/Llama backend)
  • Trained specifically on the internal architecture of MITS SkillFlare.
  • Highly moderated to ensure completely safe, educational, and relevant outputs.
  • Acts as a real-time guide to navigating tasks, finding mentors, or general platform query solving.

Platform Features

  • πŸ”’ Secure Authorization: JWT-based robust authentication with distinct Role-Based Access Controls.
  • πŸ’¬ Real-Time Communication: Live web sockets using Socket.io for instant messaging.
  • πŸ‘¨β€πŸ’» Developer Hub: Easily explore the passionate student team building SkillFlare.
  • πŸŒ™ Dark-Mode First UI: A modernized, sleek, and glow-textured interface.
  • πŸ“± Mobile Responsive: Fluid layout that operates gracefully on phones, tablets, and desktops.

πŸ› οΈ Tech Stack

Frontend

  • React 18 (Vite build system)
  • Tailwind CSS (Custom theme presets and glassmorphic designs)
  • React Router DOM v6
  • Socket.IO-Client for real-time live chats
  • Lucide React & React Icons for beautiful UI iconography
  • Axios for API data fetching
  • React Hot Toast for sleek user notifications

Backend

  • Node.js & Express.js
  • MongoDB & Mongoose for the database schema
  • JWT (JSON Web Tokens) for security layers
  • Bcrypt.js for password hashing and salting
  • Socket.IO for event-driven asynchronous chat
  • Ollama / Axios for LLM handling and prompt optimization
  • Express Rate Limit & Helmet for robust web security

πŸš€ Getting Started

Prerequisites

Make sure you have installed on your local environment:

  • Node.js (v18 or higher)
  • MongoDB (Local or Atlas instance)
  • Ollama (Only necessary if you intend to run the Buddy AI local server capabilities)

General Installation

  1. Clone the repository

    git clone https://github.com/KD2303/MITS-CampusSkill.git
    cd MITS-CampusSkill
  2. Configure Backend

    cd backend
    npm install
    cp .env.example .env

    Update your .env to include:

    • MONGODB_URI - Your MongoDB connection string
    • JWT_SECRET - Secure random encryption string
    • OLLAMA_API_URL - Default: http://localhost:11434/api/generate (If utilizing Buddy AI)
  3. Configure Frontend

    cd ../frontend
    npm install

Running the Application

  1. Start MongoDB (if running a local DB)

    mongod
  2. Start Backend Server

    cd backend
    npm run dev

    Backend defaults to: http://localhost:5000

  3. Start Frontend Server

    cd frontend
    npm run dev

    Frontend defaults to: http://localhost:5173

(Note: Run ollama serve if you are using AI functionalities)


πŸ“ Project Structure

MITS-CampusSkill/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ config/       # Environment & Local DB mapping
β”‚   β”‚   β”œβ”€β”€ controllers/  # API business logic
β”‚   β”‚   β”œβ”€β”€ middleware/   # Custom Auth, Security & Upload middlewares
β”‚   β”‚   β”œβ”€β”€ models/       # Mongoose DB Schemas
β”‚   β”‚   β”œβ”€β”€ routes/       # Express route mapping
β”‚   β”‚   β”œβ”€β”€ services/     # Standalone services (e.g. AI Prompt logic)
β”‚   β”‚   β”œβ”€β”€ utils/        # Generic formatting tools
β”‚   β”‚   └── server.js     # Entry point
β”‚   └── package.json
└── frontend/
    β”œβ”€β”€ public/           # Static assets, branding, vectors
    β”œβ”€β”€ src/
    β”‚   β”œβ”€β”€ components/   # Reusable UI (Nav, Modals, AIChat)
    β”‚   β”œβ”€β”€ context/      # React Context (Auth, Theme, Sockets)
    β”‚   β”œβ”€β”€ hooks/        # Custom React Hooks
    β”‚   β”œβ”€β”€ pages/        # Fully rendered React app routes
    β”‚   β”œβ”€β”€ services/     # Axios API integrations
    β”‚   β”œβ”€β”€ App.jsx       # Root Router Mapping
    β”‚   └── main.jsx      # React DOM Render target
    β”œβ”€β”€ tailwind.config.js
    └── package.json

πŸ“‘ Essential Core Endpoints

Authentication

  • POST /api/auth/register - Create An Account
  • POST /api/auth/login - Authenticate & Retrieve Token
  • GET /api/auth/me - Fetch Secure User Model

Tasks & Progression

  • GET /api/tasks - Browse Available Tasks
  • POST /api/tasks - Teacher Task Creation
  • POST /api/tasks/:id/take - Student Accepting Task
  • POST /api/tasks/:id/submit - Task Evaluation Submit

Buddy AI & Messaging

  • POST /api/ai/chat - Interact with Platform's Assistant
  • POST /api/chat/room - Private User-to-User Threading
  • POST /api/chat/message - Live dispatch transmission

βš™οΈ Configuration

Environment Variables

Backend (.env)

# Database
MONGODB_URI=mongodb://localhost:27017/skillflare

# Authentication
JWT_SECRET=your_secure_random_key_here

# AI & LLM
OLLAMA_API_URL=http://localhost:11434/api/generate
OLLAMA_MODEL=mistral

# Server
PORT=5000
NODE_ENV=development

Frontend

No additional environment configuration needed, connects to backend at http://localhost:5000


🐳 Docker Deployment

# Build and run with Docker Compose
docker-compose up -d

# Check status
docker-compose ps

# View logs
docker-compose logs -f backend
docker-compose logs -f frontend

# Stop services
docker-compose down

πŸ§ͺ Testing

Unit & Integration Tests

cd backend
npm test

E2E Tests

cd frontend
npx playwright test

Load Testing

cd backend
k6 run tests/performance/load.test.js

πŸ“Š API Response Format

All API responses follow this structure:

{
  "success": true,
  "data": { /* response data */ },
  "message": "Operation successful"
}

Error responses:

{
  "success": false,
  "error": "Error message",
  "statusCode": 400
}

πŸ” Security Features

  • JWT Authentication: Role-based access control (Student, Mentor, Teacher, Admin)
  • Password Security: Bcrypt hashing with salt rounds
  • Input Sanitization: XSS protection via express-sanitize
  • Rate Limiting: Prevents API abuse
  • CORS: Configured to allow frontend requests only
  • Helmet: HTTP headers security

🎯 Key Features in Detail

Task Economy

  • Teachers/Mentors post tasks with difficulty levels and credit rewards
  • Students accept and complete tasks for portfolio building
  • Peer-to-peer task support through real-time messaging
  • Gamified leaderboard system tracking credit accumulation

Mentorship Program

  • Application-based mentor onboarding
  • Skill verification through coding profiles (GitHub, LeetCode, HackerRank)
  • Dynamic availability management
  • 1-on-1 mentorship tracking
  • Mentor ratings and student testimonials

Buddy AI Assistant

  • Context-aware responses about platform features
  • Role-specific guidance (different for students, mentors, teachers)
  • Academic integrity compliance
  • Real-time chat interface
  • Conversation history and analytics

Real-Time Features

  • Socket.IO powered instant messaging
  • Live notification system
  • Real-time task status updates
  • Active mentor/student presence detection

πŸ“ˆ Project Status

  • βœ… Database: MongoDB with Mongoose schemas
  • βœ… Authentication: JWT-based with role model
  • βœ… Real-time Chat: Socket.IO implementation complete
  • βœ… AI Integration: Ollama-based Buddy AI deployed
  • βœ… Frontend: React 18 with Vite build system
  • βœ… Testing: 80%+ code coverage with automated tests
  • βœ… Deployment: Docker & CI/CD ready
  • βœ… Production: Ready for deployment (Score: 8.6/10)

πŸ“‹ Quick Commands Reference

# Development
npm run dev              # Start with hot reload

# Production
npm run build            # Build for production
npm start                # Run production build

# Testing
npm test                 # Run all tests
npm run test:watch       # Watch mode testing

# Database
npm run db:seed          # Seed sample data
npm run db:migrate       # Run migrations

πŸ‘¨β€πŸ’» Development Team

MITS SkillFlare Team:

  • Project Mentor: Dr. Devesh Kumar Lal
  • Full Stack: Krish Dargar
  • Frontend: Sheetal Gourh
  • Backend: Arin Gupta, Anurag Mishra, Vivek Chaurasiya
  • QA & Testing: Ashish Garg

πŸ“š Additional Documentation


🀝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/YourFeature)
  3. Follow the code style guidelines
  4. Commit your changes with clear messages
  5. Push to the branch and open a Pull Request
  6. Ensure all tests pass

πŸ“„ License

This project is proprietary and licensed under PRIVATE license.


Made with ❀️ by MITS Students for MITS Students.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages