The ITA-challenges-backend project is built using Java with the Spring Boot framework and reactive programming. It is an initiative designed specifically for students enrolled in the IT Academy program at Barcelona Activa.
The primary goal is to provide students with hands-on experience in a real-world development environment, real scenarios they may encounter in their future careers.
Simultaneously, students collaborate to create a valuable learning tool for the ITA challenges application dedicated to code and programming coding-challenges. This project involves tackling new features, addressing legacy code, resolving bugs, and fostering teamwork. The emphasis is not only on technical proficiency but also on providing a holistic learning experience for our students.
This project exists thanks to all the people who contribute.
For newcomers, we strongly emphasize the importance of thoroughly reading the entire README. This document contains crucial information about installation, configuration, and daily processes necessary for effectively working on this project.
This project provides REST API services for the ITA challenges application and consists of five microservices:
Each microservice exposes REST APIs to interact with it. To use any microservice, you can refer to the procedure section or start it from the App class in your IDE.
It is important to make sure you have all these tools installed and configured correctly before you start working on the project.
See GUIDELINES.md to learn how to install and configure these tools.
The following programs are optional but recommended:
See GUIDELINES.md to learn how to install and configure these tools.
These are the libraries and frameworks used in the project, just in case you want to know more about them:
See GUIDELINES.md
Install the required software listed in the "Required programs" and "Project links" sections.
Make sure you have Docker Desktop turned on.
Import data into MongoDB. You can see how in the guidelines.
Clone the repository:
git clone https://github.com/IT-Academy-BCN/ita-challenges-backend.git
Navigate into the project directory:
cd ita-challenges-backend
Install the dependencies:
gradlew build
./gradlew build
Run the microservice you want to start, for example 'itachallenge-challenge'.
gradlew itachallenge-challenge:bootRun
./gradlew itachallenge-challenge:bootRun
You can test the application in the browser at: http://localhost:8762/itachallenge/api/v1/challenge/test
If you want to test the application in postman, you can import the environments and collections from the folder postman
in the root of the project.
You can see git configuration in the guidelines
You can see daily working flow in the guidelines
You can see how work with cards in the guidelines
You can see the points to consider when doing a PR in the guidelines
See GUIDELINES.md
Can I use any kind of AI as a help on this project? What is the best way to use AI?
You are totally allowed to use AI in this project.
The best way to use AI is first to understand the problem you want to solve, then to choose the best algorithm to solve it, and finally to implement it in the application. Please, remember to double-check the AI's results and to test it in different scenarios.
Is there any diagram of architecture, a technical description or similar?
To contribute to this project, do I need make a fork?
No, you don't need to fork of the project, you need to clone it.
Our workflow is based on a single repository model, where we create separate branches for each feature. Once a feature is completed, we initiate a pull request to merge the changes back into the main branch.
You can find how to do a clone in point 4 of the Procedure section.
Do I need start up the project fully on my pc to start coding?
What should I do if I discover a bug?
What are the coding standards for this project?
How can I get help if I have difficulty contributing or understanding the project?
What programs do I need and how to proceed to set up the project?
Thank you for participating in this project! Contributions are essential to expand and enhance the experience for all users.
You can access the link GUIDELINES.md to get detailed information on how to contribute. We look forward to your contributions! Don't forget that the project exists thanks to everyone who contributes!
Project manager: Jonatan Vicente (Discord: Jonatan Vicente#1211)