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.
- 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.
- 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.
- 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.
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.
- π Secure Authorization: JWT-based robust authentication with distinct Role-Based Access Controls.
- π¬ Real-Time Communication: Live web sockets using
Socket.iofor 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.
- 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
- 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
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)
-
Clone the repository
git clone https://github.com/KD2303/MITS-CampusSkill.git cd MITS-CampusSkill -
Configure Backend
cd backend npm install cp .env.example .envUpdate your
.envto include:MONGODB_URI- Your MongoDB connection stringJWT_SECRET- Secure random encryption stringOLLAMA_API_URL- Default:http://localhost:11434/api/generate(If utilizing Buddy AI)
-
Configure Frontend
cd ../frontend npm install
-
Start MongoDB (if running a local DB)
mongod
-
Start Backend Server
cd backend npm run devBackend defaults to:
http://localhost:5000 -
Start Frontend Server
cd frontend npm run devFrontend defaults to:
http://localhost:5173
(Note: Run ollama serve if you are using AI functionalities)
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
POST /api/auth/register- Create An AccountPOST /api/auth/login- Authenticate & Retrieve TokenGET /api/auth/me- Fetch Secure User Model
GET /api/tasks- Browse Available TasksPOST /api/tasks- Teacher Task CreationPOST /api/tasks/:id/take- Student Accepting TaskPOST /api/tasks/:id/submit- Task Evaluation Submit
POST /api/ai/chat- Interact with Platform's AssistantPOST /api/chat/room- Private User-to-User ThreadingPOST /api/chat/message- Live dispatch transmission
# 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
No additional environment configuration needed, connects to backend at http://localhost:5000
# 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 downcd backend
npm testcd frontend
npx playwright testcd backend
k6 run tests/performance/load.test.jsAll API responses follow this structure:
{
"success": true,
"data": { /* response data */ },
"message": "Operation successful"
}Error responses:
{
"success": false,
"error": "Error message",
"statusCode": 400
}- 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
- 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
- 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
- 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
- Socket.IO powered instant messaging
- Live notification system
- Real-time task status updates
- Active mentor/student presence detection
- β 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)
# 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 migrationsMITS 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
- ARCHITECTURE.md - System design and technical architecture
- QUICK_REFERENCE.md - Command reference card
- DEPLOYMENT_CHECKLIST.md - Production deployment guide
- TESTING_GUIDE.md - Testing procedures
- MONITORING_AND_ALERTING.md - Operations & monitoring setup
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/YourFeature) - Follow the code style guidelines
- Commit your changes with clear messages
- Push to the branch and open a Pull Request
- Ensure all tests pass
This project is proprietary and licensed under PRIVATE license.
Made with β€οΈ by MITS Students for MITS Students.