shuhanmirza / foobar-tvs

🧪 test

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

foobar-tvs

Story

The story can be found on doc/Test.pdf

Architecture

The architecture for implementing the story is pretty simple and straightforward.

arc

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.

Image

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

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

About

🧪 test

License:GNU General Public License v3.0


Languages

Language:Go 54.3%Language:Vue 34.8%Language:JavaScript 5.8%Language:HTML 4.9%Language:Shell 0.3%