This README is shared by both the frontend and backend projects.
Etworks is the React frontend. JobSphere is the Spring Boot backend. Together they implement a job portal with seeker, employer, and admin flows.
**What’s implemented **
- Authentication: email/password registration, OTP verification, login, refresh, logout, password reset.
- Admin authentication: admin login + OTP verification, refresh, logout.
- Google OAuth: login with role selection and callback handling.
- Role-based access: seeker, employer, admin protected routes.
- Jobs: create, list with filters, update, deactivate, status updates, likes, saved jobs.
- Applications: apply, list by job, list my applications, update status, check already applied.
- Seeker profile: basic info, profile image, address, bio, skills, sector, tags, social links, projects, CV details.
- CV builder: template listing, auto-fill from profile, preview, PDF download.
- Employer: company profile + logo upload, company verification workflow, employer analytics stats.
- Admin: user management, CV template management, company verification review, analytics stats.
- Job alerts and matching: alerts CRUD, auto-sync with profile, matched jobs endpoint, recommended candidates.
- Payments: Chapa integration for job posting payments, verification, history, webhook.
- Notifications: list, unread count, mark read, test notification endpoint.
- AI assistant:
/api/v1/ai/chatand the Ema chat widget on the frontend.
Some UI routes are placeholders (see C:\Users\Hp\Desktop\HireNestBackend\HireNest\src\App.jsx where PlaceholderPage is used).
Tech Stack
- Frontend: React 19, Vite, Tailwind CSS, React Router, Zustand, Axios.
- Backend: Spring Boot 3.5.8, Java 21, PostgreSQL, Flyway, Spring Security, JWT, OAuth2, OpenAPI (springdoc), OpenPDF.
- Integrations: Brevo (email), Cloudinary (media), Chapa (payments), Google OAuth, Gemini (AI).
Local Setup Backend (JobSphere):
cd C:\Users\Hp\Desktop\HireNestBackend\Jobsphere\jobSite
mvn spring-boot:runFrontend (HireNest):
cd C:\Users\Hp\Desktop\HireNestBackend\HireNest
npm install
npm run devFrontend runs on http://localhost:5173. Backend runs on http://localhost:8080.
Environment Variables
Frontend (C:\Users\Hp\Desktop\HireNestBackend\HireNest\.env):
| Variable | Description | Example |
|---|---|---|
VITE_API_BASE_URL |
Backend base URL | http://localhost:8080 |
VITE_ENV |
Environment | development |
Backend (C:\Users\Hp\Desktop\HireNestBackend\Jobsphere\jobSite\src\main\resources\application.properties):
| Variable | Description |
|---|---|
DB_URL |
PostgreSQL JDBC URL |
DB_USERNAME |
DB username |
DB_PASSWORD |
DB password |
JWT_SECRET |
JWT signing secret |
GOOGLE_CLIENT_ID |
Google OAuth client id |
GOOGLE_CLIENT_SECRET |
Google OAuth client secret |
BREVO_SMTP_USERNAME |
Brevo SMTP username |
BREVO_SMTP_KEY |
Brevo SMTP key |
GEMINI_API_KEY |
Gemini API key |
Note: Chapa and Cloudinary keys are currently set directly in application.properties. For production, move them to environment variables.
API Overview (selected)
- Auth:
/api/v1/auth/*,/api/v1/admin/auth/* - Jobs:
/api/v1/jobs,/api/v1/jobs/{id},/api/v1/jobs/{id}/like,/api/v1/jobs/saved - Applications:
/api/v1/applications - Seeker profile:
/api/v1/seekers/profileand/api/v1/seekers/profile/details/* - Employer:
/api/v1/company-profile,/api/v1/employer/verification,/api/v1/employer/analytics/stats - Admin:
/api/v1/admin/users,/api/v1/admin/cv-templates,/api/v1/admin/company-verifications,/api/v1/admin/analytics/stats - CV builder:
/api/v1/cv-builder/* - Payments:
/api/v1/payments/* - Notifications:
/api/v1/notifications/* - AI:
/api/v1/ai/chat







