"The Beast" is a web application used by the Department of Psychiatry at UNC-Chapel Hill to collect and examine data from various mental health agencies across North Carolina to help find employment for those who are struggling with mental health and/or substance use disorders.
The intended goal of "The Beast" is to make the data collection more streamline for our client.
"The Beast" utilizes the MEAN stack.
- MongoDB
- Express.js
- Angular
- Node.js
The frontend web application is built up using Angular and Survey.js.
The backend API is built up using Node.js, Express.js, and mongoose for database connection.
The database is MongoDB.
Programming Languages
Frontend: HTML/CSS, Typescript
Backend: Javascript
The frontend has component folders for each required survey. Within those folders there are more specific components that relate to adding data and displaying group or individual data. More details in code comments.
There is also a model folder, with instances that relate to each survey for data interfacing/modeling purposes, and a service folder that has components for HTTP to the backend API connections.
Resources used for the frontend:
Connecting Angular to a Node.js application
Creating a dynamic Angular Mat Table
The backend follows a RESTful API structure.
Resources used for the backend:
Note: Please include a .env file in the root folder containing your gmail address and app password in the following format: EMAIL_PASSWORD=##### EMAIL_USERNAME=#####
In it's current state, the application is not running on a server so it must be run on localhost
.
We recommend cloning and accessing the repo through GitHub Desktop.
Once you have the repo...
Open the repo in whatever IDE you choose to use Then open the terminal and run...
npm install
To download all dependancies needed Upon completion, open another terminal and in one terminal run...
cd api
node app.js
To start up the API. Make sure you have you MongoDB server running In the other terminal run...
cd my-app
ng serve
And open it in your
localhost
browser
More detailed breakdown of the application was provided to the client.
For more questions, contact us here.