https://github.com/sahilkumar0001/jobsphere
Connecting Job Seekers and Employers
https://github.com/sahilkumar0001/jobsphere
java mysql react-router reactjs spring-boot spring-security
Last synced: 3 months ago
JSON representation
Connecting Job Seekers and Employers
- Host: GitHub
- URL: https://github.com/sahilkumar0001/jobsphere
- Owner: sahilkumar0001
- Created: 2024-12-02T09:45:59.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-12-06T10:49:17.000Z (over 1 year ago)
- Last Synced: 2025-02-06T10:53:18.089Z (over 1 year ago)
- Topics: java, mysql, react-router, reactjs, spring-boot, spring-security
- Language: Java
- Homepage:
- Size: 5.1 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🌟 Job Portal System
_A full-stack web application designed to connect job seekers (employees) with job providers (employers)._
---
## 📋 Features
### For Employees:
- 🔍 View available job postings.
- 📊 Track application status.
### For Employers:
- ✏️ Post job openings.
- 👀 View applications for posted jobs.
- ⚙️ Update application status (e.g., Pending, Approved, Rejected).
---
## 🛠 Tech Stack
**Frontend:**
- React.js
- Bootstrap
**Backend:**
- Spring Boot
- RESTful APIs
**Database:**
- MySQL
---
## 🌐 System Architecture
The system follows a **3-tier architecture**:
1. **Frontend (Client-Side):**
- React handles the user interface.
- Communicates with the backend via APIs.
2. **Backend (Server-Side):**
- Spring Boot manages business logic and data processing.
3. **Database:**
- MySQL stores user, job, and application data.
---
## 📊 Database Schema
### Employee Table
| Column | Type | Description |
|------------|-----------|----------------------------|
| `id` | INT | Primary Key |
| `name` | VARCHAR | User's full name |
| `email` | VARCHAR | User's email address |
| `password` | VARCHAR | Hashed password |
| `role` | VARCHAR | Role (Employee/Employer) |
### Employer Table
| Column | Type | Description |
|------------|-----------|----------------------------|
| `id` | INT | Primary Key |
| `companyName` | VARCHAR | User's full name |
| `email` | VARCHAR | User's email address |
| `password` | VARCHAR | Hashed password |
| `role` | VARCHAR | Role (Employee/Employer) |
### Jobs Table
| Column | Type | Description |
|---------------|-----------|----------------------------|
| `id` | INT | Primary Key |
| `title` | VARCHAR | Job title |
| `description` | TEXT | Job description |
| `location` | VARCHAR | Job location |
| `salary` | DECIMAL | Job salary |
| `employer_id` | INT | Foreign Key to Users Table |
### Applications Table
| Column | Type | Description |
|-----------------|-----------|----------------------------|
| `id` | INT | Primary Key |
| `job_id` | INT | Foreign Key to Jobs Table |
| `employee_id` | INT | Foreign Key to Users Table |
| `resume` | TEXT | Base64 string of the resume|
| `status` | ENUM | Status of application |
---
## 🔑 Authentication Process
- **Login:**
Users log in via Spring Security with Basic Authentication.
- **Role-Based Access Control:**
- `ROLE_EMPLOYEE`: Access to view jobs and apply.
- `ROLE_EMPLOYER`: Access to post jobs and manage applications.
---
## 🚀 How to Run
### Backend Setup:
1. Clone the repository:
```bash
git clone
cd JobSphere
```
2. Configure the database in `application.properties`:
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/job_portal
spring.datasource.username=your_username
spring.datasource.password=your_password
```
3. Start the backend server:
```bash
./mvnw spring-boot:run
```
### Frontend Setup:
1. Navigate to the frontend folder:
```bash
cd frontend
```
2. Install dependencies:
```bash
npm install
```
3. Start the frontend server:
```bash
npm run dev
```
4. Open your browser at `http://localhost:5173`.
---
## 🛑 Challenges Faced
1. **CORS Errors:**
- Solved by proper Spring Security and React configurations.
2. **Role-Based Access:**
- Implemented using Spring Security and frontend route guards.
---
## 🔮 Future Enhancements
- 🌟 Advanced job filters (e.g., location, salary range).
- 🌟 Notifications for application updates (email or in-app).
- 🌟 Integration with third-party cloud services (e.g., AWS, Google Drive).
- 🌟 Integrate real time chat and video conference
---
## 🤝 Contributing
Contributions are welcome! Follow these steps:
1. Fork the repository.
2. Create a new branch:
```bash
git checkout -b feature-name
```
3. Commit and push your changes:
```bash
git push origin feature-name
```
4. Submit a pull request for review.
---
## 📞 Contact
- **Developer:** Sahil Kumar
- **Email:** sahil.sk6862@gmail.com
- **GitHub:** [sahilkumar0001](https://github.com/sahilkumar0001)
- **LinkedIn:** [Sahil Kumar](https://linkedin.com/in/sahilkumar-code)
---