https://github.com/abanoubwagim/skillswap
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.
https://github.com/abanoubwagim/skillswap
bootstrap c3p0 chat full-stack hibernate java jsp jstl mvc mysql skill-sharing spring-boot web-application xml
Last synced: 3 months ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/abanoubwagim/skillswap
- Owner: abanoubwagim
- Created: 2025-09-02T00:29:38.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-09-02T00:39:15.000Z (10 months ago)
- Last Synced: 2025-09-02T02:36:16.723Z (10 months ago)
- Topics: bootstrap, c3p0, chat, full-stack, hibernate, java, jsp, jstl, mvc, mysql, skill-sharing, spring-boot, web-application, xml
- Homepage:
- Size: 2.93 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ๐ 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

---
## ๐จ UI Wireframes
Initial frontend design sketches (Home, Sign In, Sign Up, Dashboard, Profile, Send Requests, View Requests, Notifications, Chat, Messages):




---
## โถ๏ธ Demo Video
https://github.com/user-attachments/assets/319fc508-3006-4f87-8fdf-24650b3d48ce
---
## ๐งช How to Run
1. Clone the repository:
```bash
git clone https://github.com/abanoubwagim/SkillSwap.git
cd SkillSwap
```
2. Import into Eclipse or IntelliJ as a Maven project.
3. 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
4. Deploy the project to Apache Tomcat server.
5. 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`