TellMe is an app that facilitates communication between citizens and public administrations. It allows the Municipality to publish surveys and generates useful reports for monitoring the territory. Users can participate in municipal surveys and questionnaires proposed by public and private entities, with incentives in the form of prizes.
- node.js version 20.0.0 or higher
- npm version 9.0.0 or higher
Install the dependencies:
cd server
npm installRun the server in development mode:
npm run devBuild the server:
npm run buildRun the server in production mode:
npm startInstall the dependencies:
cd client
npm installRun the client in development mode:
npm run devBuild the client:
npm run buildRun the client in production mode:
npm run previewThe API documentation is available at the following link: Apiary. You can view the API documentation and test the endpoints directly from the Apiary interface.
- Obtain a DigitalOcean access token and save it in a file named
do_tokenin./infrastructure/terraform/do_token. Necessary permissions:kubernetes:writekubernetes:read
- Initialize Terraform:
cd infrastructure/terraform terraform init - Apply the Terraform configuration to create the infrastructure:
This will create a Kubernetes cluster and other necessary resources.
terraform apply
For the client:
cd ./client
./scripts/build.shFor the server:
cd ./server
./scripts/build.shRequirements:
kubectlinstalled and configured to access the Kubernetes cluster created in Stage 1.
Apply the Kubernetes manifests to deploy the application:
cd ./infrastructure/kubernetes
kubectl apply -f .
kubectl apply -f ./server
kubectl apply -f ./clientCreate 2 DNS records:
| Type | Name | Value |
|---|---|---|
| A | tellme.wetambara.com | IP of the load balancer |
| A | tellme.backend.wetambara.com | IP of the load balancer |
Now the frontend should be accessible at https://tellme.wetambara.com and the backend at https://tellme.backend.wetambara.com.