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.
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.
https://bloom-blush.vercel.app/
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🎉
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
Client: NextJS, React
Server: Node, Express
Issue & Project tracking: Github projects & issues
// 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
}
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. |
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.
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. |
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. |
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 |
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
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.
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.
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.