Skip to content

felipe0328/PlayerWonChallenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PlayerWon Take Home Challenge

Description

WebService created to deliver Ads based on used ID, User Country and player language based on the requirements described in this document.

This project uses an in memorySQLDB to avoid the need of implementing a DB.

Used Libraries

Project Architecture

BlockDiagram

Each one of the modules execute an especific function:

  • Endpoint: Receives the request, prepare the data to be processed by the controller and returns the final result to the user.
  • Controller: Do the different operations needed to return the correct value, comunicates with the DAL if need to get data from database and connect with third party services.
  • DAL: Data Access Layer, it connects with the database, run different queries to get the required data, avoiding to do logic in this layer as much as possible.
  • AdService: Get Ads from the PlayerWon Server.
  • Clock: Get Current Time and parse the time from string to a time object.

Each layer should conects with another using interfaces.

Paths

Request Type Endpoint Description
GET /docs/index.html Project swagger documentation
POST /ads Receive a new video

Project Commands

Command Description
go run main.go Run debug server
go test ./... Run project Unit tests
go fmt ./... Format code
golangci-lint run Run golang linter

About

PlayerWon - Take home challenge

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages