https://github.com/soulcodex/karma-api
A basic API made with the purpose to manage a basic karma counter and explain basic concepts about building REST API under industry standards
https://github.com/soulcodex/karma-api
Last synced: 5 months ago
JSON representation
A basic API made with the purpose to manage a basic karma counter and explain basic concepts about building REST API under industry standards
- Host: GitHub
- URL: https://github.com/soulcodex/karma-api
- Owner: soulcodex
- Created: 2025-01-12T16:18:15.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-24T19:37:37.000Z (over 1 year ago)
- Last Synced: 2025-01-24T20:27:00.738Z (over 1 year ago)
- Size: 154 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README

Karma API
A `simple` API capable to manage a Karma counter by user and its assigner
### How to use this repository ❓
As we saw during the lecture this repository has been divided by meaningful blocks
per branches in order to keep the focus on what really matter `simplicity`.
That said, feel free to navigate throughout the repository branches and you'll be able to
see the evolution of the API components and entrypoints starting from `feat/block-01`
up to `feat/block-03-testing`.
### Meaningful branches 💡
* `feat/block-01` ➡️ Basic setup with environments vars and a basic JSON logger.
```bash
git checkout feat/block-01
```
* `feat/block-02` ➡️ Added the HTTP router and another meaningful components to our API
```bash
git checkout feat/block-02
```
* `feat/block-03-database` ➡️ Added database connections and SQL migrations
```bash
git checkout feat/block-03-database
```
* `feat/block-03-testing` ➡️ Added integration, unitary tests and mocks generator
```bash
git checkout feat/block-03-testing
```
### Bonus Tracks 🎁
* [OpenAPI (openapi-go)](https://github.com/swaggest/openapi-go)
* [MongoDB Driver](https://github.com/mongodb/mongo-go-driver)
* [Apache Cassandra Driver](https://github.com/apache/cassandra-gocql-driver)
* [Firebase Firestore](https://pkg.go.dev/cloud.google.com/go/firestore)
* [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/)
* [Justfile](https://github.com/casey/just)
* [CloudEvents SDK](https://github.com/cloudevents/sdk-go)