IBM FISE Lounge is an application that acts as a smart, collaborative workout coach for the elderly to use in the current pandemic, where loneliness is becoming a major issue. It provides a simple interface with a standalone dashboard for more tech-savvy relatives to set up the Lounge app and preferences on the elderly relative's behalf.
- Adam Peace (App, Tensorflow Exercise Assistant and Server)
- Emil Almazov (Server API & Backend)
- Rikaz Rameez (IBM Watson Integration).
This repository contains both the web app for FISE (in /app
) as well as the dashboard and API (in /server
)
Ensure you have yarn
installed
cd server
yarn install
cp .env.local.example .env.local
(This file should never be tracked, only the example)- Fill in all the missing details in
server/.env.local
- To begin development:
yarn dev
- To build for production:
yarn build
- To serve production build:
yarn start
Ensure you have yarn
installed
cd app
yarn install
cp .env.local.example .env.local
(This file should never be tracked, only the example)- Fill in all the missing details in
app/.env.local
- To begin development:
yarn dev
- To build for production:
yarn build
- To serve production build:
yarn start
- Running on NextJS 9 (different to Express, look it up and be familiar with ES5/ES6 syntax)
- Auth handled by Passport
- Storage in MongoDB (Can easily set up using Atlas)
- All API routes at
localhost:3000/api/*
- All dashboard pages at
localhost:3000/*
- All API routes are "pages" in NextJS 9
- All pages are in
/server/pages
, with API routes in/server/pages/api
and the file path from pages corresponding to the actual path
- The actual account administrator
- They manage the Consumer's FISE account and set it up on the Consumer's device
- They can add mutiple Consumers and add multiple Contacts per Consumer
- This is the only person who ever accesses the Dashboard
- The elderly person with difficulty contacting their relatives
- This person's data will show up on the FISE app
- Can be related to multiple Contacts
- Someone the Consumer can call
- Will receive an email when called through the app
Easiest way: Vercel
- Connect repo to Vercel
- Add all env variables that are in
/server/.env.local.example
- (NB: Adding
VERCEL_URL
will autopopulate based on whether the build is production or preview)
Otherwise: Server
- Follow the above instructions for Server Installation and expose port 3000
Parameters:
- password
Parameters: None
Parameters:
- password
- name
Gets the current (based on session) user's data
Revokes the current user's session
Create a new consumer
Success: returns {message: ..., data: consumer}
Get the corresponding consumer data
Update the corresponding consumer's data
Delete the corresponding consumer
Refreshes one-time-code of the corresponding consumer
Create a new contact
Parameters:
- consumer_id
- name
- relation
Get the corresponding contact data
Update the corresponding contact's data
Parameters:
- [name]
- [email]
- [relation]
Delete the corresponding contact
Get the corresponding consumer's data
Sends a call notification email to the desired contact
Parameters:
- contact_id
Parse audio through IBM Watson API
Parameters:
req.body
should beBase64
encodedaudio/mp3