Project Mender: Home Renovation & Maintenance Application
A home renovation & maintenance application for homeowners where users are will then be able to create work orders for corrective and preventive maintenance work aimed specifically for the Quebec markets. Every home purchase is required to be catalogued and pass under strict inspection standards that are set by provincial and regional requirements. However, the results of the inspection are too long-winded and are not easily translatable for the client. This application aims to condense, summarize and interpret the results in a visually appealing manner for the client to understand their home better. With this in mind, the homeowner will be able to create and track work orders for corrective and preventive maintenance.
Secondly, the application will include an additional feature for the client to be connected to network of local contractors in the area where they can request and access services directly with the application. The status of the work order can be easily retrieved, scheduled and updated.
This project is also hosted on the Concordia University Gina Cody School of Engineering showcase website.
This web application uses the following technologies:
Before starting, make sure you have working versions of npm (6.12+), node (12.9.0+) and mySQL (5.7.22+).
npm --version
node --version
mysql --version
Necessary dependencies must be installed for both parts of the application.
For the back-end, execute:
cd backend/
npm install
For the front-end, execute:
cd frontend/
npm install
Update - With the latest release of Mac OSX Catalina (10.15+ and up) on October 19, 2019 and the replacement of bash
with zsh
, additional steps must be done to allow permissions for the app to run.
Do not use bash
for OSX 10.15 & above.
Select System Preferences
from the Apple
menu.
Select Security & Privacy
icon.
Under the Privacy
tab, and locate the Full Disk Access
folder on the left side pane.
Tick onto the checkbox for the Watchman
application to grant full access.
Restart zsh
and the Mender application should be running smoothly from here on.
The /backend will require the following environment variables:
JWT_KEY=
RDS_HOSTNAME=
RDS_PORT=
RDS_USERNAME=
RDS_PASSWORD=
RDS_DATABASE=
The /frontend will require the following environment variables:
LOCAL_API_KEY=<ip-address>:3000
To start the back-end server, use the following command from backend/
:
A. on NodeDemon:
npm start
or
B. on ts-node:
npm run dev
To start the front-end server, use the following command from frontend/
:
npm start
Afterwards, scan the barcode or navigate to the link provided by Expo with your phone.
Note that both servers must be running as separate processes for the application to function.
To create and start the container, use the following command from the project root:
docker-compose up --build
Ensure that port forwarding is enabled with the Docker technology installed, specifically for the following host and guest ports: 3000:3000, 19000:19000, 19001:19001 and 19002:19002. Additionally, add the following environment variable to /frontend:
REACT_NATIVE_PACKAGER_HOSTNAME=<ip-address>
Finally, once the application has been built, scan the QR displayed in the terminal.
Currently, for development purposes, polling/hot reloading is supported for the backend, but not for the frontend (see https://github.com/milaroisin/project-mender/issues/195).
Jamal Ghamrouai | Dania Kalomiris |
---|---|
Anamika Pancholy | Daniel Privorotsky |
Mila Roisin | Sébastien Ong Tone |