https://github.com/barry-de/one2n-rest-api-project
Student CRUD API in Go and Gin. A hands-on project to learn real-world practices for building, deploying, and managing production workloads. The purpose of this project is to get a taste of real-world stuff.
https://github.com/barry-de/one2n-rest-api-project
argocd docker docker-compose gin githubactions go grafana helm kubernetes loki nginx postgres postman postman-collection prometheus promtail vagrant
Last synced: 3 months ago
JSON representation
Student CRUD API in Go and Gin. A hands-on project to learn real-world practices for building, deploying, and managing production workloads. The purpose of this project is to get a taste of real-world stuff.
- Host: GitHub
- URL: https://github.com/barry-de/one2n-rest-api-project
- Owner: Barry-dE
- License: mit
- Created: 2024-12-20T04:09:21.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-02-26T20:51:24.000Z (5 months ago)
- Last Synced: 2025-02-26T21:30:24.704Z (5 months ago)
- Topics: argocd, docker, docker-compose, gin, githubactions, go, grafana, helm, kubernetes, loki, nginx, postgres, postman, postman-collection, prometheus, promtail, vagrant
- Language: Go
- Homepage:
- Size: 16.2 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# REST-API-PROJECT
This repository contains a CRUD REST API implemented in Golang using the Gin framework. The project serves as a learning exercise to explore best practices in building RESTful APIs, containerization, CI/CD pipelines, deployment, and observability. It's main purpose is to get hands-on experience with building and managing production workloads.
## Technology Stack
Golang, Gin, PostgreSQL, Docker, GitHub Actions, Vagrant, Nginx, Kubernetes, Helm, ArgoCD, Prometheus, Grafana, Loki, Promtail, Postman.## Features
### Functional Requirements
- Create a new student: Add a student record to the database.
- Retrieve all students: Fetch all student records.
- Retrieve a specific student: Fetch details of a student by ID.
- Update student information: Modify details of an existing student.
- Delete a student: Remove a student record from the database.
- Healthcheck endpoint: Monitor API health.### Non-Functional Requirements
- API versioning: Supports versioning (e.g., `api/v1/`).
- Meaningful logging: Emits structured logs with appropriate log levels.
- Environment variables: Configurations are externalized and injected.
- Unit testing: Includes tests for all endpoints.
- Database migrations: Automates schema creation and updates.
- Postman collection: Pre-configured requests for API testing.## Getting Started