Skip to content

kmod-odoo/odoo_hackathon_Skill_Swap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 

Repository files navigation

SwapSkill - Skill Exchange Platform

Team Lead: Saniya Vaghani
Email: [email protected]

A modern MERN stack application that enables users to exchange skills through a collaborative platform. Users can offer their expertise and request skills from others, creating a community-driven learning ecosystem.

📋 Table of Contents

🎯 Overview

SwapSkill is a full-stack web application built with the MERN (MongoDB, Express.js, React.js, Node.js) stack. The platform facilitates skill exchange between users, allowing them to offer their expertise and request skills from others in the community.

✨ Features

User Management

  • 🔐 User registration and authentication with JWT
  • 👤 Public and private user profiles
  • 🛡️ Secure password hashing with bcrypt
  • 🔒 Protected routes and middleware

Skill Management

  • 📝 Create and manage skill listings
  • 🔍 Advanced skill search and filtering
  • 📊 Skill categories and descriptions
  • ⭐ Skill ratings and reviews

Swap System

  • 🤝 Request skill swaps from other users
  • ✅ Accept, reject, or cancel swap requests
  • 📈 Track swap history and status
  • 💬 In-app messaging system

Admin Features

  • 👨‍💼 Comprehensive admin panel
  • 🚫 User management (ban/unban)
  • ✅ Skill approval system
  • 📊 Platform analytics and reports
  • 📢 Platform-wide messaging

Real-time Features

  • 🔔 Real-time notifications
  • 💬 Live messaging with Socket.io
  • 📱 Responsive design for mobile and desktop

🛠️ Tech Stack

Backend

  • Node.js - Runtime environment
  • Express.js - Web framework
  • MongoDB - Database
  • Mongoose - ODM for MongoDB
  • JWT - Authentication
  • Socket.io - Real-time communication
  • Multer - File upload handling
  • bcryptjs - Password hashing
  • Express-validator - Input validation

Frontend

  • React.js - UI library
  • Material-UI - Component library
  • React Router - Client-side routing
  • Socket.io-client - Real-time client
  • Axios - HTTP client

📋 Prerequisites

Before running this application, make sure you have the following installed:

  • Node.js (v14 or higher)
  • npm (v6 or higher)
  • MongoDB (v4.4 or higher)

🚀 Installation

  1. Clone the repository

    git clone <repository-url>
    cd SkillSwap2
  2. Install backend dependencies

    cd backend
    npm install
  3. Install frontend dependencies

    cd ../frontend
    npm install

⚙️ Configuration

  1. Create environment file

    cd backend
    cp .env.example .env
  2. Configure environment variables

    MONGODB_URI=mongodb://localhost:27017/skillswap
    JWT_SECRET=your_jwt_secret_key_here
    PORT=5000
    NODE_ENV=development
  3. Start MongoDB service

    # On Windows
    net start MongoDB
    
    # On macOS/Linux
    sudo systemctl start mongod

🏃‍♂️ Usage

Development Mode

  1. Start the backend server

    cd backend
    npm run dev

    The backend will run on http://localhost:5000

  2. Start the frontend application

    cd frontend
    npm start

    The frontend will run on http://localhost:3000

Production Mode

  1. Build the frontend

    cd frontend
    npm run build
  2. Start production server

    cd backend
    npm start

🔌 API Endpoints

Authentication

  • POST /api/auth/register - User registration
  • POST /api/auth/login - User login
  • GET /api/auth/profile - Get user profile

Skills

  • GET /api/skills - Get all skills
  • POST /api/skills - Create new skill
  • PUT /api/skills/:id - Update skill
  • DELETE /api/skills/:id - Delete skill

Swaps

  • GET /api/swaps - Get user swaps
  • POST /api/swaps - Create swap request
  • PUT /api/swaps/:id - Update swap status

Admin

  • GET /api/admin/users - Get all users
  • PUT /api/admin/users/:id/ban - Ban user
  • GET /api/admin/reports - Get platform reports

📁 Project Structure

SkillSwap2/
├── backend/
│   ├── controllers/     # Route controllers
│   ├── middleware/      # Custom middleware
│   ├── models/         # MongoDB models
│   ├── routes/         # API routes
│   ├── uploads/        # File uploads
│   ├── utils/          # Utility functions
│   └── app.js          # Main server file
├── frontend/
│   ├── src/
│   │   ├── api/        # API service functions
│   │   ├── components/ # Reusable components
│   │   ├── context/    # React context
│   │   ├── pages/      # Page components
│   │   └── utils/      # Utility functions
│   └── public/         # Static files
└── README.md

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages