Rest API for Agora Web that uses Agora: An Electronic Voting Library implemented in Scala
This project is created using the play framework 2.6 seeds template.
Scala | Play | Updated |
---|---|---|
August 08, 2018 |
To run the development environment for this REST API, you need Git, Sbt and MongoDB installed.
To install the backend, please do the following:
- Install Git.
- Clone this repo with
https://gitlab.com/aossie/Agora-Web
- Note: If you just want to use the project, cloning is the best option. However, if you wish to contribute to the project, you will need to fork the project first, and then clone your
Agora-Web
fork and make your contributions via a branch on your fork.
-
Install and run MongoDB
-
Configure Silhouette to allow Agora's frontend to do Oauth2 authentication:
-
Make a copy of
silhouette.conf
and rename it tosilhouetteLocal.conf
. -
Fill the following fields in
silhouetteLocal.conf
with the ids, keys and secrets from your created applications. You will need to provide only the keys for Facebook since it's the only social provider we support for now, though we intend to support the others in the future.facebook.clientID=${?FACEBOOK_CLIENT_ID} facebook.clientSecret=${?FACEBOOK_CLIENT_SECRET} google.clientID = ${?GOOGLE_CLIENT_ID} google.clientSecret = ${?GOOGLE_CLIENT_SECRET}
-
Change the redirect URL in
silhouetteLocal.conf
to your localhostlocalhost:9000
. -
Delete the line
include "silhouetteLocal.conf"
fromsilhouetteLocal.conf
.
-
-
As above, make a copy of
application.conf
and rename it toapplicationLocal.conf
.- Assign your MongoDB URI (e.g.
mongodb://localhost
, if you are connecting to a MongoDB server running in your local computer) to themongodb.default.uri
field (e.gmongodb.default.uri = "mongodb://localhost"
). - Set your SendGrid username and password in
applicationLocal.conf
.user = ${?SENDGRID_USERNAME} password = ${?SENDGRID_PASSWORD}
- Delete the lines
include "silhouette.conf"
andinclude "applicationLocal"
fromapplicationLocal.conf
.
- Assign your MongoDB URI (e.g.
To start the API, please do the following:
- Make sure you have java 8 installed and not java 9. For some reasons the build fails with java 9
- Start the server by running
sbt run
in the root folder. - Go to http://localhost:9000/ in a browser. Where you will see the API documentation hosted using swagger UI.
- Note: Changing any source code while the server is running will automatically recompile and reload the application on the next HTTP request.
REST API documentation is available under address: REST API
The current development branch is deployed on heroku and is available at http://agora-rest-api.herokuapp.com/
Always git pull
and get the latest from master. Google and Stackoverflow are your friends. You can find answers for most technical problems there. If you run into problems you can't resolve, feel free to open an issue.