Goaly is a simple yet powerful goal setting and tracking web application built with the MERN stack.
- MongoDB
- ExpressJS
- AdobeXD and Pencil
- React Hooks & Redux
- MaterialUI
- CSS in JS
- Atomic design Methodology
- Axios
- Google Auth API
- Docker
- Nginx
-
NodeJS environment
-
Mongodb
OR
-
Docker
-
Docker Compose
- Database
The easiest way to setup a MongoDB Database, is to use MongoDB Atlas, you need to get a Connection String Format then paste it in the config json file /server/config
{
"mongoURI": "{{Connection String here}}",
"APPURL": "http://localhost:3000",
"jwtSecret": "fa`W@3)Ka,X8>5Qa",
"jwtSecretEmail": "u9@d)^6=fmGCr>[!",
"jwtSecretPswd": "<N))]/)3CV_Gw}:x"
}
a detailed tutorial for Atlas could be found here
-
Front-end From the terminal, cd into the folder:
client
and runnpm install
-
Backend From the terminal, cd into the folder:
server
and runnpm install
Now you can start the project by running the command: npm run dev
From inside the server
folder.
-
First you need to install Docker, download the installer package from the official website here
-
from the root directory, run the command:
docker-compose up -d
By the end of the processes, the application will be running on the port: http://localhost:3000
The application is using Gmail API to send emails (Activation and password reset emails) , you need to add your own credentials to the file: /server/config/google-smtp.json
{
"clientId": "",
"clientSecret": "",
"refreshToken": ""
}
The way to get those credentials is well explained in this tutorial
This project is licensed under the GPL2 License