Skip to content

Peshowe/issue-tracker

Repository files navigation

Parvus JIRA (demo project)

A demo app for tracking issues (the goal is to explore building apps using a microservice architecture and Go)

App architecture

The app consists of a couple of services:

  • Tracker service:
    • responsible for mainly the CRUD aspect of the app
    • stores projects and their respective issues
    • publishes domain events
  • Mail service:
    • sends email notifications to users
    • responsible for users' notification preferences
    • consumes domain events
  • Gateway services:
    • exposes a RESTful-ish API to the outer world
    • serves the frontend client
    • responsible for edge functions - authentication (uses Google's oAuth2 server for identity provider)
  • Infrastructure services:
    • MongoDB
    • Kafka (with ZooKeeper)
    • SMTP server
  • Frontend client:
    • a ReactJS frontend for the whole app
    • communicates with the gateway's REST API

Repo structure

Each service is in its own sub-directory.

The cmd directory contains CLI scripts for:

  • compiling and copying over the frontend app
  • compiling and copying over the Proto files for the gRPC contract
  • building, tagging and pushing the Docker images

The k8-configs directory contains the Kubernetes config files. Alternatively there is also a docker-compose.yml file.

The grpc-contract directory contains the Proto files for the gRPC communication.

Alt text

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors