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
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
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
Recommended way to test your gRPC services is with grpcui
Recommended IDE is Visual Studio Code. Example configuration could be found here.
Note: Some microservices could have their own recommendations.
- [Update] description - For adding and updating
- [Fix] description - For fixing bug
- [Remove] description - For removing
Project uses GitFlow as a branching strategy
Project uses Kanban and Kanbanize