https://github.com/ath31st/vac_vac
Vac Vac is a job application platform for job seekers and employers, providing secure access and session persistence after page reloads. It features six main pages tailored to meet the needs of both user groups.
https://github.com/ath31st/vac_vac
component-styling exposed full-stack jwt kotlin ktor ktor-server react reactjs redux-toolkit sqlite3 typescript
Last synced: 8 months ago
JSON representation
Vac Vac is a job application platform for job seekers and employers, providing secure access and session persistence after page reloads. It features six main pages tailored to meet the needs of both user groups.
- Host: GitHub
- URL: https://github.com/ath31st/vac_vac
- Owner: ath31st
- Created: 2024-07-15T07:14:28.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-09-25T10:56:42.000Z (about 1 year ago)
- Last Synced: 2025-01-13T09:45:30.271Z (10 months ago)
- Topics: component-styling, exposed, full-stack, jwt, kotlin, ktor, ktor-server, react, reactjs, redux-toolkit, sqlite3, typescript
- Language: TypeScript
- Homepage:
- Size: 1.17 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Vac Vac
Vac Vac is a comprehensive job application platform designed for both job seekers and employers. The
application ensures secure access for authenticated users only, maintaining their sessions even
after page reloads. The platform consists of six main pages, each catering to the different needs of
job seekers and employers.
## Features
### Common Pages
- **Vacancies Page**: Accessible by both job seekers and employers, displaying a list of available
job postings.
Employer side:

Job seeker side:

- **Vacancy Details Page**: Accessible by both job seekers and employers, displaying detailed
information about a specific job posting.

### Job Seeker Pages
- **My Vacancies Page**: Lists the job postings the user has applied to.

### Employer Pages
- **Active Vacancies Page**: Lists the active job postings created by the employer.

- **Active Vacancy Details Page**: Displays detailed information about a specific active job posting
created by the employer, with options to close the vacancy.
- **Create Vacancy Page**: Allows employers to create new job postings.

### Authentication Pages
- **Login Page**: For user authentication.

- **Common Registration Page**: For job seekers and companies to register.

## User Permissions
- **Employers**: Can view the number of applicants for their job postings, close vacancies, and
create new job postings.
They cannot access job seeker-specific pages.
- **Job Seekers**: Can view and apply to job postings, see which jobs they have applied to, and
cancel applications. They cannot access employer-specific pages and will be redirected to the
Vacancies Page if attempting to access restricted pages.
## Backend Endpoints
### User Routes
- **POST /users**: Register a new user.
- **POST /auth**: Authenticate a user.
- **GET /roles**: Retrieve a list of roles.
- **GET /users/{id}**: Get user details by ID.
- **PUT /users/{id}**: Update user details by ID.
- **DELETE /users/{id}**: Delete a user by ID.
### Vacancy Routes
- **POST /vacancies**: Create a new vacancy.
- **GET /vacancies/{id}**: Retrieve details of a specific vacancy.
- **GET /vacancies**: Retrieve a list of all active vacancies.
- **GET /vacancies/employer**: Retrieve all vacancies created by the current employer.
- **GET /vacancies/employee**: Retrieve vacancies to which the current job seeker has applied.
- **PUT /vacancies/{id}/change-visible**: Update the visibility of a vacancy.
- **GET /vacancies/tags**: Retrieve a list of vacancy tags.
- **GET /vacancies/education-levels**: Retrieve a list of education levels.
- **GET /vacancies/english-levels**: Retrieve a list of English language levels.
- **POST /vacancies/{id}/response**: Apply to a vacancy.
- **DELETE /vacancies/{id}/cancel-response**: Cancel an application to a vacancy.
- **POST /vacancies/response-statuses**: Retrieve response statuses for vacancies.
- **POST /vacancies/response-counts**: Retrieve the number of responses for vacancies.
## Technology Stack
- **Frontend**: TS (React, Redux toolkit, Styled-components).
- **Backend**: Kotlin (Ktor, exposed, sqlite).
## Setup Instructions
### Backend
1. Navigate to the backend directory.
2. Build the project and install dependencies: `./gradlew build`.
3. Start the backend server: `./gradlew run`.
### Frontend
1. Open a new terminal and navigate to the React application directory.
2. Install dependencies: `yarn install`.
3. Start the frontend application: `yarn start`.
## Repository Structure
- **backend/**: Contains backend server code.
- **frontend/**: Contains React application code.
Vac Vac is designed to streamline the job application process, providing a user-friendly interface
for both job seekers and employers to interact seamlessly.