Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/aswinbennyofficial/sre-exercises

Building a resilient backend project from scratch with Dockerization and CI/CD, incorporating Site Reliability Engineering (SRE) principles. Demonstrating best practices in modular architecture, logging, database migration, and CI/CD pipelines for automated testing, deployment.
https://github.com/aswinbennyofficial/sre-exercises

api backend docker go go-chi golang pgx postgres rest-api sre student-management-system vyper-config yaml-configuration zerolog

Last synced: 20 days ago
JSON representation

Building a resilient backend project from scratch with Dockerization and CI/CD, incorporating Site Reliability Engineering (SRE) principles. Demonstrating best practices in modular architecture, logging, database migration, and CI/CD pipelines for automated testing, deployment.

Awesome Lists containing this project

README

        

## 1 - Create a simple REST API Webserver
- Task link : [View Task](https://playbook.one2n.in/sre-bootcamp/sre-bootcamp-exercises/1-create-a-simple-rest-api)

### Learning Outcomes
- Learn about the best practices for REST APIs.
- Learn about the Twelve-Factor App methodology.

### Problem Statement
- Create a student CRUD REST API using any programming language and web framework of your choice. You can choose to use any of the following:
- Golang and Gin
- Java and Spring Boot
- Python and Flask
- Node.js etc.

### Functional Requirement
Using the API we should be able to perform the following operations.
- Add a new student.
- Get all students.
- Get a student with an ID.
- Update existing student information.
- Delete a student record.

### Expectations
The following expectations should be met to complete this milestone.
- Create a public repository on GitHub.
- The repository should contain the following
- README.md file explaining the purpose of the repo, along with local setup instructions.
- Explicitly maintaining dependencies in a file ex (pom.xml, build.gradle, go.mod, requirements.txt, etc).
- Makefile to build and run the REST API locally.
- Ability to run DB schema migrations to create the student table.
- Config (such as database URL) should not be hard-coded in the code and should be passed through environment variables.
- Postman collection for the APIs.

- API expectations
- Support API versioning (e.g., api/v1/).
- Using proper HTTP verbs for different operations.
- API should emit meaningful logs with appropriate log levels.
- API should have a /healthcheck endpoint.
- Unit tests for different endpoints.

## Getting started