foobar-tvs
Story
The story can be found on doc/Test.pdf
Architecture
The architecture for implementing the story is pretty simple and straightforward.
Frontend
I am using VueJs for implementing the front end because its learning curve is not that steep and does its job well. I used Vuetify UI Library as it has Material design components.
Backend
I choose Gin Gonic as it is one of the most performing API frameworks. I made use of SQLC for generating codes for interacting with the database. SQLC generates type-safe code from SQL which performs better than most of the available ORMs for Golang. Furthermore, I used golang-migrate cli for preparing migration SQL scripts.
Database
I preferred PostgreSql as I find it approachable to interact with. You can find the URL of the database design here. I used dbdiagram.io for designing the schema. The schema has two tables: (a) events, and (b) locations.
Infrastructure
I made use of Docker and Docker-Compose for deploying all services.
Getting Started
-
Setup Docker and Docker-Compose
-
Create a mock docker network
docker network create mock-network
- Deploy Containers. It will spin up services as well as run the database migration scripts
docker-compose up --build
- Go to http://localhost:8080
- You can find the postman collection in the
doc
folder
Note
This section will have the TODOs and acknowledgment.
TODOs
- Revamp UI components according to the design
- write tests to get full test coverage
Acknowledgment
- stackoverflow.com, w3schools.com, google.com, youtube.com, github.com, dev.to, medium.com
- Blog of Umesh Chaudhury