I have finished the feature for MACI coordinator service. Two PR have been merged: v1.0 and v0.10.
There are two roles in the cordinator service: admin (i.e. maci coordinator) and user (i.e. normal user). The responsibility for admin is to maintain the code updated and the backend services for normal users. The user just need sends http request to the backend server to interact with the MACI service such as signup and publish messages.
The coordinator service has been wrapped into two docker instances: one for the backend server to accept user request; one for mongodb service to store all necessary informations of the current state such as smart contract addresses, zero knowledge proof keys etc.
There are two modes: development mode and production mode. For developers and cordinator, it's convenient for them to be able to quickly change the code and test the results. Hence the backend docker instance mounts the code repo to the developer's local repo. For production mode, all the code repos will be included into the docker instance instead of mount to local repo.
The project can be setup in two different ways. One for developing purpose, which the codes are linked to the developers' local machine, so it is easy to modify the codes and test the results. The other is for production purpose, where the codes are stored in docker image, so there will be no code changes when starting the docker services.
public