Inspired by a tracker we built in school and the Daylio app, I wanted to track my ever changing moods in a very simplified manner.
In its essence, this is a web application using MongoDB, Express, React and Node.js to do CRUD operations that keeps track of user's moods. The app is comprised of a react frontend application and an express back-end REST api.
Details | Languages | Framework |
---|---|---|
Frontend | JavaScript, HTML, CSS | React |
Backend | JavaScript | ExpressJs, NodeJS, MongoDB |
This readme describes the backend. For this app to work in all its glory, the backend and frontend ( ZenTracker-Frontend) needs to be opened in two seperate windows and run concurrently.
If you don't care to install it - this is how the overall app looks: (in Dark Mode):
TLDR: If these instructions aren't followed, this web app is just not going to work 🤷♀️
- Install Node.Js
- Install Express
- Install MongoDB (see pdf for more setup info)
- Install an IDE of your choice.
I prefer Webstorm: https://www.jetbrains.com/webstorm/download/
- Clone this repository.
- Open the terminal for IDE (preferred to avoid issues)
- Use command
npm install
- Once its installed, use command
npm start
- Create a
.env
file and type the following:<PORT=3000>
. This will start the Express server for REST API which listens at port3000
MONGODB_CONNECT_STRING=""
(Atlas Cluster URL- see above for installation steps)
The backend will run on localhost:3000
.
- Using MongoDB in this manner is fairly rudimentary and does not allow for easy deployment.
- Validating the inputs has been quite tricky for me. I intend to include more robust checks as I continue working on this app.
- Deploy this app.
- Given the sensitive nature of the app, I would like to add a secure login and authentication page.
- Add a test suite.
- Validate inputs thoroughly