Skip to content
/ bloom Public

An application for patients with cancer that are in remission, where they can find guidance and support from similar people. The app is intended to help people get back to their daily lives.

Notifications You must be signed in to change notification settings

sjagoori/bloom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Logo

Bloom

Bloom is an application built by students from the minor Web Development (dutch) that is given by the University of Amsterdam.

Together with an alumni from the study Communication and Multimedia Design we are realizing her graduation project with the skills we have learned within this minor.

Bloom is an application for patients who's cancer is in remission. They can find guidance and support from people who are or went through a similar process.

Features

Based on the scope and time of this project the following features will be implemented in this version of the application.

  • Finding information with themes
    • As an user, I want information about relevant themes about cancer and remission, so that I would know how to act and expect accordingly in this stage of the process.
  • Contact with other people on this application.
    • As an user, I want to have personal contact with people in similar situations, so that I can discuss and reflect on my experiences, and further develop my coping strategies.

Demo

https://bloom-blush.vercel.app/

Run Locally

Clone the project

  git clone https://github.com/sjagoori/bloom.git

Go to the project directory

  cd bloom

Install dependencies

  npm install

Start the server🎉

Installation

Install bloom with npm

  npm install bloom
  cd bloom
  # Run development
  # Terminal 1
  cd backend && nodemon server.js
  # Terminal 2
  cd frontend && npm run dev

Alternatively run the project with a global concurrently e.g.

concurrently "cd bloom/backend && nodemon server.js" "cd bloom/frontend && npm run dev

Tech Stack

Client: NextJS, React

Server: Node, Express

Issue & Project tracking: Github projects & issues

Data

// Example of a document within MongoDB
{
  "_id": {
    "$oid": String
  },
  "email": String,
  "user_id": String,
  "password": String,
  "name": String,
  "birthDate": Date,
  "residence": String,
  "gender": String,
  "kankerType": Array,
  "pictogram": String,
  "about": String
}

Git Conventions

Symbol What does it do
+ Commit when successful.
- Commit a deletion, be it a file or code.
~ Commit when something is broken or changed, such as logic or formatting.
[WIP] Commit when something is unfinished. Refrain from committing unfinished work.

Tooling and more

Next.js, The React Framework for Production
Next.js gives you the best developer experience with all the features you need for production: hybrid static & server rendering, TypeScript support, smart bundling, route pre-fetching, and more. No config needed.

MongoDB
The database for modern napplications. MongoDB is a general purpose, document-based, distributed database built for modern application developers and for the cloud era.

Socket.io
Socket.IO enables real-time, bidirectional and event-based communication. It works on every platform, browser or device, focusing equally on reliability and speed.

redis.io
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker.

Frontend Dependencies

Name Purpose
dotenv Storing sensitive credentials in a safe environment.
Socket.io Two way real time communication.
boring-avatars Tiny JS React library that generates custom, SVG-based, round avatars.
cookie HTTP server cookie parsing and serialization.
react-cookie Universal cookies for react.
formik Build forms in React, without the tears.
React-swipeable-views React component for swipeable views on the web.

Backend Dependencies

Name Purpose
bcrypt A library to help you hash passwords.
Socket.io Two way real time communication.
cors NodeJS package for providing a Connect/Express middleware that can be used to enable CORS with options.
dotenv Dotenv is a zero-dependency module that loads environment variables from a .env file into process.env.
express Fast unopinionated, minimalist web framework for node.
mongodb MongoDB driver for NodeJS.
async-redis Light-weight wrapper over node_redis library with first class async & promise support.

Environment Variables

To run this project, you will need to add the following environment variables to your .env file

Key Value
MONGO_USER username from the url string
MONGO_PASS password that matches the username
MONGO_CLUSTER cluster url
REDIS_URL Redis URL generated by redis
REDIS_PASS Password for the redis project
REDIS_PORT port redis is running on, can be found in url or redis project

Documentation

To learn more about the proces of this particular subject, please read the documentation in notion.
Disclaimer: documentation is written in dutch.

Notion - Bloom - Meesterproef 2021

FAQ

What is remission?

Remission means that the signs and symptoms of your cancer are reduced. Remission can be partial or complete. In a complete remission, all signs and symptoms of cancer have disappeared.
If you remain in complete remission for 5 years or more, some doctors may say that you are cured.

Remission is the period between recovery and staying in the hospital for treatment.

What will this application not do?

This project is strictly for the mobile environment such as smartphones and tablets, this was a careful consideration from the product owner throughout her graduation project. The reasoning behind this is because people in remission tend to be a mobile user and prefer chatting through a phone or tablet rather than a desktop or laptop.

For this reason this particular application will not be fully usable in a desktop environment.

Authors

Bibliography

L., A. (2019, June 17). Understanding Cancer Prognosis. National Cancer Institute. https://www.cancer.gov/about-cancer/diagnosis-staging/prognosis#:%7E:text=Remission%20means%20that%20the%20signs,say%20that%20you%20are%20cured.

License

GPL-3.0

About

An application for patients with cancer that are in remission, where they can find guidance and support from similar people. The app is intended to help people get back to their daily lives.

Topics

Resources

Stars

Watchers

Forks