SkillBridge is a Java-based console application designed to connect students with mentors, enable internship applications, and manage mentoring sessions effectively. It supports seamless registration, application, booking, and tracking processes via an interactive, menu-driven interface. This version uses Java + JDBC and Oracle XE and is organized using a structured package layout under com.skillbridge.*.
Please run populate.sql before running the java classes becase Interests are pre-loaded due to data constraints and sequence and triggers are used to avoid failures.
- Features
- Tech Stack
- Demo Video
- Installation
- Usage Guide
- Main Function Walkthrough
- Compilation Instructions
- Database Setup
- Folder Summary
- Dependencies
- Configuration
- Troubleshooting
- Contributors
- Student and mentor registration
- Internship browsing and application
- Mentor-student matchmaking
- Session slot creation and booking
- Feedback and rating mechanism
- Real-time internship tracking
- Robust exception handling
- Java 17+
- Oracle Database XE (21c or 18c)
- MySQL Workbench (to manage DB & run
populate.sql) - MySQL JDBC Driver (
mysql-9.0.3-connector.jar)
- Java JDK 17+
- MySQL 9.0 (and its connector)
- IDE (e.g., IntelliJ IDEA, Eclipse)
# 1. Clone the repository
git clone https://github.com/shivrajkadam19/skillbridge.git
cd skillbridge
# 2. Set up the database
# Import populate.sql into your Oracle XE database
# 3. Configure database credentials
# Update /util/DB.java with your DB username and password
# 4. Compile the project
javac -d bin src/com/skillbridge/**/*.java
# 5. Run the application
java com.skillbridge.AppOnce the application is launched, the following main menu is displayed:
Welcome to SkillBridge
1. Student
2. Mentor
3. View Internships
4. Register as Student
5. Register as Mentor
6. Exit
- Type a number (1–6) to navigate through various functions.
- Example: Type
4to register as a new student.
- Starts a continuous loop displaying the main menu.
- Actions based on user selection:
-
Input: Email
-
Validates student
-
Options:
- View My Applications
- Apply for Internship
- Book a Session
- View My Sessions
- Give Feedback
- View My Feedback
- Track My Internships
- Back to Main Menu
-
Input: Email
-
Validates mentor
-
Options:
- View My Session Slots
- Add Slot
- View Feedback
- Back to Main Menu
- Lists all available internships using
InternshipDAO.readInternship()
- Inputs: Name, Email, College
- Displays areas of interest
- Matches with relevant mentors
- Optionally book a session or apply for internships
- Inputs: Name, Email, Expertise
- Optionally create initial session slots
- Gracefully terminates the application
To compile manually using the command line:
javac com/skillbridge/util/DB.javajavac com/skillbridge/entities/*.javajavac com/skillbridge/queries/*.javajavac com/skillbridge/DAO/*.javajavac com/skillbridge/services/*.javajavac com/skillbridge/App.java
java com.skillbridge.AppRun the populate.sql file using MySQL Workbench or any MySQL-compatible SQL CLI tool to:
- Create all tables
- Define sequences and triggers for auto-generating primary keys
- Insert sample data for Students, Mentors, Interests, Internships, and Session_Slot
| Folder | Purpose |
|---|---|
util/ |
DB connection helper using Oracle JDBC (ojdbc) |
entities/ |
POJO classes representing each table (Student, Mentor, etc.) |
queries/ |
SQL strings for each entity's operations |
DAO/ |
Handles actual SQL interactions using PreparedStatement |
services/ |
Contains business logic for workflows like booking or matching |
App.java |
Entry point and menu for interacting with the console system |
java.sql.*– Database interactionsjava.util.*– Handling lists, scanners, and exceptions- DAO Classes –
StudentDAO,MentorDAO,InternshipDAO, etc. - Service Classes –
InternshipTrackingService, etc. - Entity Classes –
Student,Mentor,Application, etc. - Utility –
DB,EmailValidate - Custom Exceptions –
InvalidMenuChoiceException,InvalidRatingException, etc.
Ensure the following configurations are correct:
- Update database credentials inside
com.skillbridge.util.DB.java - Make sure tables exist and are populated as per
populate.sql
Tables used:
STUDENTS,MENTORS,INTERESTS,INTERNSHIPS,SESSION_SLOT,STU_SESSION,FEEDBACK,APPLICATION,MATCHMAKING
| Issue | Fix |
|---|---|
SQLException |
Verify DB setup, schema, and connection credentials |
StudentNotFoundException |
Ensure valid and registered student email |
InvalidMenuChoiceException |
Input only numeric values in the correct range |
InvalidRatingException |
Ratings must be between 1–5 |
SlotUnavailableException |
Mentor has no available slots |
- Swayam
- Tanishq
- Shivraj
- Samyukta
- Rujal
- Teja
