Giter Site home page Giter Site logo

platzily / dealer Goto Github PK

View Code? Open in Web Editor NEW
1.0 3.0 0.0 21 KB

https://storage.googleapis.com/gopherizeme.appspot.com/gophers/521763cdaf44ed25cc34c1edfbc4b2f1e480bb8a.png

Go 99.37% Shell 0.63%
go notification-service platzi-master clean-architecture design-patterns

dealer's Introduction

Platzily

Development environment

This part of the documentation assumes that you have docker-compose installed

On the root of the project run the following command

cat .env.example > .env

Fill all the environment variables on the .env file

yarn start:database

Wait for the databases to fill and run the following command

yarn dev

Now you should have

  • A container running mongo on port 27017
  • A container running the api-gw on port 3100
  • A hot reloading api-gw process running on port 3000

dealer's People

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

dealer's Issues

Test - create basic test suite

Checklist โœ…

  • The issue is present in the latest release.
  • I have searched the issues of this repository and believe that this is not a duplicate.

Summary ๐Ÿ’ก

We need a basic tests suite to test the core components of the code such as the drivers since now we "test" those drivers by manual and by writing code on main.go that shouldn't be there

Requirements ๐ŸŒˆ

Create tests that covers at least the drivers and its methods. Integration tests are a nice to have.

Motivation ๐Ÿ”ฆ

Testing is a fundamental part of the development flow and it is necessary to prove that new feature will not break the current code.

Feature - event useCase

Checklist โœ…

  • The issue is present in the latest release.
  • I have searched the issues of this repository and believe that this is not a duplicate.

Summary ๐Ÿ’ก

The use case should be able to connect to the main queue and be always listening when a new message comes to send it to the respective consumer (e.g. email, slack).

It has to create a new record on the state machine (DB) to keep track of the notifications status.

Requirements ๐ŸŒˆ

  • Connect to the main queue (RabbitMQ Queue)
  • Connect to the state machine (MongoDB)
  • Connect to the consumer queue (RabbitMQ Queue)

Motivation ๐Ÿ”ฆ

We need this feature in order to accomplish the MVP of the project, also, with this feature we are going to be able to make testing of the whole workflow of a event (notification).

Create scaffold of the project

We have to define the right scaffold for the project. This means creating all the folders and basic files so we can have a firm base.

Create dealer and consumer services

We have to create the first two core services. The dealer will be in charge of managing all the notifications and the consumer will parse this notification to send it to an API of an external service (e.g Slack).

Chore - dotenv capabilities

Checklist โœ…

  • The issue is present in the latest release.
  • I have searched the issues of this repository and believe that this is not a duplicate.

Summary ๐Ÿ’ก

In order to make the project work, we will just need a .env file that will contain all the sensible or editable parameters, such as passwords, configurations, etc.

Requirements ๐ŸŒˆ

Add a dotenv package like godotenv and a .env.example as a reference to know all the necessary variables to run the project successfully.

Motivation ๐Ÿ”ฆ

With this, the project will be easier to run on any environment or machine, also the CI/CD flows will be easier to implement with this feature

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.