InnoTutor / Backend

Repository with Backend code for InnoTutor project. It is written on Java/Spring.
MIT License
20 stars 0 forks source link

Backend

dark_logo

LicenseHits-of-Code


Developers: Daniil Livitn, Roman Soldatov

Contents

This is the repository with Backend code for the InnoTutor project. The backend is designed as REST API, so you need the frontend part to access it. Alternatively, you can use Postman or Swagger. The main description of the project is available here

Requirements

Technical Stack:

Stakeholders and their roles 👤

API

There is documentation with all requests which backend supports. You can read about API documentation here

Database

We use Docker and PostgreSQL for the database. Here is the database diagram

Google credentials

To log in, you need to provide your Google credentials created here. Then open application.properties file and input your JSON Google credentials file as a single string in GOOGLE_CREDENTIALS field. You can use this online service to convert JSON into a string with escape characters: link

In case of any problems refer to this guide

Hosting and CI

We use Heroku to host the backend. Here is the deployed version of it. For continuous integration, we have to make a pull request into the main branch. Then Heroku will automatically deploy a new version on the server.

To build the project on Heroku's server you need to provide config vars: DATABASE_URL and GOOGLE_CREDENTIALS. Also, add this buildpack https://github.com/buyersight/heroku-google-application-credentials-buildpack.git

Guide how to work with config vars: link

How to install locally

or

java -jar target/innotutor_backend-0.0.1-SNAPSHOT.jar



# Code analysis
* [The result of PMD static analyzer](https://github.com/InnoTutor/README/blob/main/StaticAnaylyzer/result.md). Do not be scared by such a huge number of violations. We fixed all the violations that we could fix. Other violations can not be fixed due to spring framework-specific code which requires to follow special name convention, so the framework could understand fields and create particular [Beans](https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#beans-definition).

# Want to contribute?
You can contribute to this project. Just fork the repository from the `develop` branch, implement changes you want to propose and make a pull request.
Also, there are [issues](https://github.com/InnoTutor/Backend/issues), so feel free to submit a new one or participate in existing.