Progee-API

November 7, 2022 ยท View on GitHub


Version Java use Test coverage Spring Boot use PostgreSQL use Project state Deploy state

Table of Contents

Description

Hi! This is Progee-API v1. Progee-API is a REST API for providing information about programming languages, and frameworks, their popularity, and respect for them among the community of developers (with reviews and scores). Currently working features: auth, languages, frameworks, reviews, dynamic roles with permissions.

Releases

Current version is v1.0.1.

You can see changes and earlier versions on CHANGELOG.md

API docs

Documentation for the Progee API is available at Postman Documenter: See docs

Or you can download Postman collection: Download

Progee API is currently deployed and working. Base url is: https://progee-api-v1.herokuapp.com (See API docs above to understand where to use base-url)

Database relations map

Progee API includes 5 main entities: Language (for programming language), Framework (for framework of programming language), AppUser (for user of application), Role (for signed user's role) and Review (for users' review about programming language). And here is relations between tables of PostgreSQL database:

progee-db-relations

Frontend (Android client)

Currently, there is Android client app for testing Progee-API main features. Progee-Android is in alpha state now. See GitHub repository of Progee-Android for additional information

Tech stack

This REST API is developed using Java programming language and Spring Boot starter of Spring framework. The full tech stack:

Usage

Attention! This project uses environment variables for some configuration properties. Define your environment variables in application.yml file. Otherwise default values will be used.

  • JWT_SECRET
  • DEFAULT_ENCRYPTED_PASSWORD
  • AWS_ACCESS_KEY
  • AWS_SECRET_KEY

Hint: Get AWS access and secret keys from your Amazon Web Services console

Contribution

If you would like to contribute to this project reach out to me. Contact Information can be found below or by clicking on the 'Contact-Information' link provided in the Table of Contents.

Licenses

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Contact Information