CRUD operations for Resume API
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
Resume API is a multi modules project. The goal is to manage Resumes so a Front End application can create, read, update or delete the information.
The main goal was to implement the concepts of microservices and have them interact with each other.
Adding security for JWT and encryption and decryption for config server, have all the services registering with the discovery service and gather metrics using Zipkin service. Utilize messaging services like RabbitMQ, ActiveMQ, and Kafka.
The service interacts with Docker, a compose file has been included to get the images required for the services to work out of the box.
A bit of manual work is required to create the tables in the database and insert the initial data needed by the services. Instructions were included on how to perform this task.
This is an initial draft, yet many ideas are waiting to be implemented.
To get a local copy up and running follow these simple steps.
- Clone the repo
git clone https://github.com/Mahzarasua/ResumeAPI.git
- Open the project with Intellij and do a Maven build to get the dependencies
mvn install
- Make sure Docker is installed and run the following command to get the images installed and started
docker compose up -d --remove-orphans - Check database_script directory and review notes.md file to see instructions related to database
- Configuration files used by Config Server were created in a
separate repo
- Make sure the url matches to the one used in Config Server application.yaml file
- Authentication api was created to authenticate users and generate the jwt token.
- Resume, Education, Skills and WorkExperience services have a dependency on authorization-api due to the fact that this service is used to authenticate users and it will expose an operation to do so on of each service independently. In order to avoid duplicating code authentication-api contains the model classes for the database, it also has the configuration classes that are used by the other services.
Once the tables have been created and the initial data has been inserted, this is the order recommended in which the services must be started.
- Eureka-server
- Config-server
- Authentication
- Resume
- Education/Skills/WorkExperience
The following services can be started after Authentication is running.
- Education
- Skills
- Kafka processing between Services
- ElasticSearch logging
See the open issues for a list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
MhZars - @mahzarasua - mahzarasua@outlook.com
Project Link: https://github.com/Mahzarasua/ResumeAPI
