Skip to content

samigeorgiev/gAcademy

Repository files navigation

gAcademy

Continuos Integration

An innovative system for online courses and private lessons built with gRPC and microservice architecture. More info here.

Live demo: gAcademy

Note: In Live Demo use gacad​@test.cc as email and testtest as password in PayPal Payments

Architecture

architecture

Running

Requirements

Starting

Microservices

To run all microservices you should provide these environment variables:

  • DB_HOST
  • DB_PORT
  • DB_USERNAME
  • DB_PASSWORD
  • DB_DATABASE
  • DB_SYNCHRONIZE
  • NODE_ENV
  • AUTHENTICATION_JWT_SECRET
  • AUTHENTICATION_JWT_VALID_TIME
  • PAYPAL_MODE
  • PAYPAL_CLIENT_ID
  • PAYPAL_CLIENT_SECRET
  • RESOURCE_MANAGEMENT_URL
  • MAX_FILE_SIZE
  • RESOURCE_MANAGEMENT_JWT_SECRET
  • RESOURCE_MANAGEMENT_JWT_VALID_TIME

The easiest way is with script:

$ source set-env.sh

Note:: Fastest way for preparing the environment(except paypal integration) is running run-db-on-docker.sh which creates the database with necessary tables and using set-env.sh.example for environment variables.

After that prepare all protocol files:

$ ./genproto.sh

Run all containers as well as the proxy server:

$ docker-compose up

SPA client

Before run it create .env with proper extension for node environment and add variables for services url in following format: REACT_APP_${microservice_name} For local testing use .env.example.

In the client/ folder run:

$ ./genproto.sh

$ yarn install

$ yarn start

Development

Testing gRPC

Recommended way to test your gRPC services is with grpcui

Recommended IDE

Recommended IDE is Visual Studio Code. Example configuration could be found here.

Note: Some microservices could have their own recommendations.

Git

Commit messages

  • [Update] description - For adding and updating
  • [Fix] description - For fixing bug
  • [Remove] description - For removing

Branching strategy

Project uses GitFlow as a branching strategy

Process management system

Project uses Kanban and Kanbanize

About

An innovative system for online courses and private lessons built with microservice architecture and gRPC

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published