Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yagoinacio/job-board-server
Simple application for the management of companies' job offers and applicant profiles.
https://github.com/yagoinacio/job-board-server
api-rest junit open-api spring-boot
Last synced: about 1 month ago
JSON representation
Simple application for the management of companies' job offers and applicant profiles.
- Host: GitHub
- URL: https://github.com/yagoinacio/job-board-server
- Owner: YagoInacio
- License: mit
- Created: 2023-11-18T12:36:26.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2023-11-25T13:33:18.000Z (12 months ago)
- Last Synced: 2024-10-14T05:01:39.505Z (about 1 month ago)
- Topics: api-rest, junit, open-api, spring-boot
- Language: Java
- Homepage:
- Size: 134 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
About •
Tech Stack •
Features •
How it works •
Author •
License## 💻 Job Board Server
This API simplifies the interaction between companies and candidates, enabling organizations to display job positions and efficiently handle applicant profiles. Candidates can easily register within the system, sharing detailed information, including descriptions and CVs, and apply for positions with ease.
## 🛠 Tech Stack
- **[JAVA](https://www.java.com)**
- **[Spring Boot](https://spring.io/projects/spring-boot)**
- **[Spring Data JPA](https://spring.io/projects/spring-data-jpa)**
- **[Spring Security](https://spring.io/projects/spring-security)**
- **[PostgreSQL](https://www.postgresql.org)**
- **[JUnit](https://junit.org)**## ✨ Features
- [x] Candidates:
- [x] Register
- [x] Authenticate
- [x] Check profile
- [x] List jobs by filter
- [x] Apply for a job
- [ ] Update Profile- [x] Companies:
- [x] Register
- [x] Authenticate
- [x] Create a job position
- [ ] View candidates for a job
- [ ] Update job position
- [ ] Close job position
- [ ] Update profile## 🚀 How it works
This instructions will allow you to run a functional version of the project on your local machine.
### 📋 Pre-requisites
Before you begin, you will need to have the following tools installed on your machine:
[Git](https://git-scm.com), [JDK](https://www.oracle.com/br/java/technologies/downloads/), [Maven](https://www.apache.org).
In addition, it is good to have an editor to work with the code like [VSCode](https://code.visualstudio.com/) or [IntelliJ](https://www.jetbrains.com/pt-br/idea/download).#### 🔧 Instalation
```bash
# Clone this repository
$ git clone [email protected]:yagoinacio/job-board-server.git# Access the project folder cmd/terminal
$ cd job-board-server# install the dependencies
$ mvn dependency:copy-dependencies
```#### 🔧 Configuration
To be able tu run the application you need to set up the environment variables.
For that, create the files ```db.env.properties``` (containing database variables) and ```app.env.properties``` (containing the application variables).
You can follow the examples bellow:
```bash
# db.env.properties:
POSTGRES_USER=admin
POSTGRES_PASSWORD=admin
POSTGRES_DB=job_board
POSTGRES_HOST=localhost
``````bash
# app.env.properties:
SECURITY_TOKEN_SECRET = mP63^#Y#S4Ie
SECURITY_TOKEN_SECRET_CANDIDATE = @bJtFd@Q8khP
```#### 🎲 Running the application
```bash
# If you don't have a running database, run
$ docker compose up -d# Run the application in development mode
$ mvn spring-boot:run# The server will start at port: 8080 - go to http://localhost:8080
```You can try out the API using its swagger documentation on http://localhost:8080/swagger-ui/index.html
#### ✅ Running automated tests
```bash
# Run automated tests
$ mvn test# The test automation will run for unit and integration tests
```## 🦸 Author
[![Github Badge](https://img.shields.io/badge/-YagoInacio-gray?style=flat-square&labelColor=gray&logo=github&logoColor=white&link=https://github.com/yagoinacio)](https://github.com/yagoinacio)
[![Linkedin Badge](https://img.shields.io/badge/-Yago-blue?style=flat-square&logo=Linkedin&logoColor=white&link=https://www.linkedin.com/in/yagoinacio/)](https://www.linkedin.com/in/yagoinacio/)
[![Gmail Badge](https://img.shields.io/badge/[email protected]?style=flat-square&logo=Gmail&logoColor=white&link=mailto:[email protected])](mailto:[email protected])## 📝 License
This project is under the license [MIT](./LICENSE).
Made with ❤️ by Yago Faran 👋🏽 [Get in touch!](https://www.linkedin.com/in/yagoinacio/)