Skip to content

Enthusiast-AD/Peer-to-peer-Barter-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 

Repository files navigation

SkillSwap - Student Skill Barter System

SkillSwap is a peer-to-peer skill exchange platform designed for students. It facilitates the sharing of knowledge without monetary transactions, allowing users to teach a skill they possess in exchange for learning something new.

SkillSwap Banner

🚀 Features

  • User Authentication: Secure sign-up and login with JWT and Google OAuth integration.
  • Skill Management: Users can list skills they can teach and skills they want to learn.
  • Smart Matching: The system suggests potential barter partners based on complementary skills.
  • Real-time Communication: Integrated chat and video conferencing for seamless sessions.
  • Session Scheduling: Organize and manage learning sessions efficiently.
  • Reputation System: Rate and review partners to build trust within the community.
  • Dashboard: A personalized hub for managing sessions, requests, and progress.
  • Modern UI: A clean, responsive interface built with React and Tailwind CSS v4.

🛠️ Tech Stack

Client

Server

📦 Installation

To get a local copy up and running, follow these simple steps.

Prerequisites

  • Node.js (v18+ recommended)
  • PostgreSQL
  • npm or pnpm

1. Clone the repository

git clone https://github.com/yourusername/skillswap.git
cd skillswap

2. Backend Setup

Navigate to the backend directory and install dependencies:

cd backend
npm install
# or
pnpm install

Create a .env file in the backend directory based on the .env.example (or use the variables below):

PORT=8000
DATABASE_URL=postgres://user:password@localhost:5432/skillswap_db
JWT_SECRET=your_jwt_secret_key
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
CLIENT_URL=http://localhost:5173

Start the backend server:

npm run dev

The server will start at http://localhost:8000.

3. Frontend Setup

Open a new terminal, navigate to the client directory, and install dependencies:

cd client
npm install
# or
pnpm install

Create a .env file in the client directory:

VITE_API_BASE_URL=http://localhost:8000/api

Start the development server:

npm run dev

The application will be available at http://localhost:5173.

📂 Project Structure

barter-system/
├── backend/                # Express.js API Gateway & Logic
│   ├── controllers/        # Request handlers (User, Auth, Session, Skill)
│   ├── db/                 # Database connection config
│   ├── middlewares/        # Custom middlewares (Auth, Error handling)
│   ├── models/             # Sequelize models (User, Skill, Session, Review)
│   ├── routes/             # API route definitions
│   ├── services/           # Business logic services
│   ├── utils/              # Utility functions (ApiError, ApiResponse)
│   ├── index.js            # Server entry point
│   └── passport.js         # Passport.js strategy configuration
├── client/                 # React Frontend Application
│   ├── src/
│   │   ├── app/
│   │   │   ├── components/ # Reusable UI components (Navbar, Footer, Shadcn UI)
│   │   │   ├── context/    # React Context providers (AuthContext)
│   │   │   ├── pages/      # Application views/pages
│   │   │   └── services/   # API integration services (Axios)
│   │   ├── assets/         # Static assets (Images, SVGs)
│   │   ├── styles/         # Global styles & Tailwind layers
│   │   └── main.tsx        # React entry point
│   ├── index.html          # HTML template
│   ├── postcss.config.mjs  # PostCSS configuration
│   └── vite.config.ts      # Vite bundler configuration
└── README.md

🤝 Contributing

Contributions make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your 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

📄 License

Distributed under the MIT License. See LICENSE for more information.

About

SkillSwap is a peer-to-peer skill exchange platform designed for students. It facilitates the sharing of knowledge without monetary transactions, allowing users to teach a skill they possess in exchange for learning something new.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors