Skip to content

Full-stack Java web application for exchanging skills between users. Built with Spring MVC, Hibernate, JSP, and MySQL, featuring user profiles, skill requests, notifications, and real-time chats.

Notifications You must be signed in to change notification settings

abanoubwagim/SkillSwap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🔄 SkillSwap – Peer-to-Peer Skill Sharing Platform

SkillSwap is a web-based application designed to connect users who want to share or learn skills from each other. Users can create profiles, list the skills they offer and want, send requests to exchange skills, and communicate via built-in chat.


🚀 Features

  1. User Registration & Login

    • Users create an account with basic information.
    • Login is authenticated by email and password.
  2. Profile & Skills

    • Users can manage their profile, including first/last name, bio, location, and photo.
    • Users can add skills they offer and skills they want to learn.
  3. Sending Requests

    • Users browse others with desired skills.
    • Send skill exchange requests.
    • Notifications alert users of incoming requests.
  4. Request Response

    • Receivers can accept or reject requests.
    • Upon acceptance, a chat is automatically created.
  5. Chat & Messaging

    • Users can chat with connected peers.
    • Messages are timestamped and stored in the database.

🛠️ Tech Stack

Layer Technology
Backend Java, Spring MVC, Spring Transaction Management, Hibernate/JPA
Frontend JSP, HTML, CSS, Bootstrap
Database MySQL
File Handling Multipart file uploads for profile photos
ORM Hibernate
Build Tool Maven
Connection Pool c3p0
Server Apache Tomcat

🗂️ Project Structure

src/
└── com.skillswap
    ├── controller         # UserController, handles HTTP requests
    ├── dao                # UserDAO, SkillDAO, RequestDAO, MessageDAO, NotificationDAO interfaces and implementations
    ├── model              # User, Skill, SkillsOffered, SkillsWanted, UserDetails, Request, Chat, Message, Notifications
    ├── service            # UserService, SkillService, RequestService, ChatService, MessageService, NotificationService
                            
WebContent/
├── WEB-INF/
│   ├── lib/               # External JARs
│   ├── view/              # JSP pages (home, signIn, singUp, dashboard, profile, sendRequests, viewRequests, notifications, chats, messages)
│   ├── spring-container.xml
│   └── web.xml
├── resources/
│   └── images/Screenshot_1.png

🗄️ Database Design

Entity-Relationship Diagram (ERD) showing main tables and relations:

  • Users – stores user details (first name, last name, email, password)
  • UserDetails – stores extended profile details (bio, location, profile photo)
  • Skills – list of skills
  • SkillsOffered – mapping of users → skills they can teach
  • SkillsWanted – mapping of users → skills they want to learn
  • Requests – skill exchange requests between users
  • Chats – created when a request is accepted
  • Messages – messages exchanged in chats
  • Notifications – alerts for requests and updates
Database ERD

🎨 UI Wireframes

Initial frontend design sketches (Home, Sign In, Sign Up, Dashboard, Profile, Send Requests, View Requests, Notifications, Chat, Messages):

Home, SignUp, SignIn, Dashboard Profile requests and notifications Chats and messages

▶️ Demo Video

Video.Demo.mp4

🧪 How to Run

  1. Clone the repository:
git clone https://github.com/abanoubwagim/SkillSwap.git
cd SkillSwap
  1. Import into Eclipse or IntelliJ as a Maven project.

  2. Configure your MySQL database:

  • Create a schema named skillswap
  • Tables will be created automatically by Hibernate
  • Update spring-container.xml with your DB username/password
  1. Deploy the project to Apache Tomcat server.

  2. Open your browser:

http://localhost:8080/SkillSwap/

📄 License

This project is open-source and free to use under the MIT License.


🏷️ GitHub Topics

Java Spring MVC Hibernate JSP MySQL MVC Web-Application Full-Stack Bootstrap JSTL CRUD c3p0 XML Apache Tomcat SkillSwap Chat Notifications Maven Peer-to-Peer SkillSharing

About

Full-stack Java web application for exchanging skills between users. Built with Spring MVC, Hibernate, JSP, and MySQL, featuring user profiles, skill requests, notifications, and real-time chats.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages