Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contact

AcademyAPI

Overview 🔍

This repository contains the code for a REST API designed to manage students data for various academies, developed using ASP.NET Core 6. It also includes a comprehensive CI/CD pipeline that automates API deployment on Azure and integrates various testing and quality assurance stages, including unit tests, smoke tests, and integration with third-party quality tools like SonarQube for code quality analysis and WhiteSource for dependency security scanning.

API 🔗

For obvious reasons, the code doesn't include Azure key vault and DB connection string used to connect with the Azure DataBase. These connection can be eassily included by modifying appsettings.json and appsettings.Development.json with a valid kvUri and DBConnectionStringName. To replicate the database, ensure that all fields of the Alumn entity are created.

Multi-tenancy 🌍

This API was designed based on a multi-tenancy architecture (more information here). This allow the same DB to serve various academies or tenants (University of Lisbon, University of Granada, University of Warsaw and Univesity of Paris) while keeping their data isolated. With this schema, the alumns data of each of the tenants is isolated from the alumns data of other tenants. The main advantage of this approach is its cost efficiency for relative small applications.

Multitenancy

Example 📌

Here is an example of the use of the API with Postman. Due to the use of multi-tenancy, tenant id is included in the request header (Universiy of Lisbon).

Postman Example

The API allow the following methods:

Swagger

Deployment using Azure Pipeline ⚙️

The repository also include the azure-pipelines.yml file, which defines the API deployment and integrates stages for unit tests, smoke test and third-party quality tools. This pipeline was executed using Azure Devops Pipelines following CI/CD best practices. Please note that all Azure keys, certain directory names, and other sensitive information have been removed. For those who want to use this project, this pipeline can serve as a good starting point for creating your own.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages