Skip to content
@MedManageW

MedManageW

The "Digital Medication Management for People with Alzheimer’s Disease" team of UWECE's ENGINE Capstone. Sponsored by industry partner Novo Nordisk

MedMangeW

Authors: Xiaxi Shen, Shao-Jung(James) Kan, Yenyen Liao, Eric Chang, Ivan Zenkovitch, Zichao Chen

Project Background

The Digital Medication Management project is sponsored by Novo Nordisk. Alzheimer’s Disease patients often experience memory loss, confusion, and comorbidities. With multiple diseases occurring simultaneously, they often need to take multiple medications at a time, also known as polypharmacy. Polypharmacy can possibly cause contraindications of medications, as multiple medicines are being taken at once and they could possibly contradict each other and result in side effects. These contraindications can be hard to catch when prescribing the medications, therefore could potentially pose great danger to the health of the patients. In addition, people with Alzheimer’s Disease experience memory loss and often forget to take the medications on time. The objective of this project is to deliver a solution to deal with the issue of polypharmacy for patients with Alzheimer’s disease, and remind them to take the medications on time.

Project Description

We are delivering a solution for Alzheimer's patients;

The solution has a software component, which is a mobile app for patients, doctors, and caregivers to keep track of the medications that the patients are currently taking and detect any medical contraindications, as well as a hardware component, which dispenses the medications at the right time and reminds the patients to take the medications.

Our Tech Stack

Software Team

Xiaxi Shen, Shao-Jung(James) Kan, Yenyen Liao

  • React Native - We will leverage the power of React Native, an open-source framework developed by Facebook, to build our mobile application. With React Native, we can write our app's code in JavaScript and create native-like mobile experiences for both iOS and Android platforms. Its declarative approach and extensive UI component library make it efficient and intuitive to develop highly dynamic and interactive user interfaces. Additionally, React Native's performance optimizations ensure that our app runs smoothly and efficiently, providing a seamless user experience.

  • Redux - Redux is a predictable state container for JavaScript apps. It is often used with libraries like React or Angular for building user interfaces. The main idea of Redux is that the entire state of an application is stored in a single central place called a "store". Actions trigger changes in this store, and the changes are made with pure functions called "reducers". This pattern can make it easier to reason about how state changes over time and to manage complex state that is shared among many components.

  • PostgreSQL - PostgreSQL is an advanced, open-source relational database system. It supports both SQL (relational) and JSON (non-relational) querying. PostgreSQL is highly extensible and allows for custom functions; it's highly scalable both in the sheer quantity of data it can manage and in the number of concurrent users it can accommodate. It has robust support for distributed and parallel computing.

  • AWS: RDS - RDS is a web service provided by Amazon Web Services (AWS) that makes it easier to set up, operate, and scale a relational database in the cloud. It supports several types of databases including PostgreSQL, MySQL, MariaDB, Oracle, and Microsoft SQL Server. It takes care of routine database tasks such as backup and restore, patch management, and replication.

  • AWS: S3 - S3 is an object storage service offered by AWS. It's designed to store and retrieve any amount of data from anywhere on the web. It provides scalability, high availability, and low latency with strong consistency. It's commonly used for backup and restore, archiving, content distribution, and data lakes for analytics.

  • AWS: Route53 - Route53 is a scalable and highly available Domain Name System (DNS) web service provided by AWS. It is designed to give developers and businesses a reliable and cost-effective way to route end users to Internet applications by translating domain names into the numeric IP addresses that computers use to connect to each other. Route53 also provides domain registration services, where you can register new domain names.

  • AWS: CodePipeline - CodePipeline is a fully managed continuous integration and continuous deployment (CI/CD) service from AWS. It helps automate the build, test, and deploy phases of your release process every time there is a code change, based on the release model you define.

  • AWS: Elastic BeanStalk - Elastic Beanstalk: Elastic Beanstalk is a Platform as a Service (PaaS) provided by AWS. It allows developers to deploy and manage applications without having to understand the underlying infrastructure, as it automatically handles the capacity provisioning, load balancing, scaling, and application health monitoring. It supports several major languages, web servers, and databases.

  • Express -

  • Sequelize -

  • JavaScript - We use JS for frontend and backend development

  • Visual Studio - We will use Visual Studio as an ide to develop the software.

  • Git - We will use Git as the version control tool to coordinate work, keep track of changes in our code, and keep our project up to date.

Hardware Team

Eric Chang, Ivan Zenkovitch, Zichao Chen

  • JavaScript - We used JavaScript for backend development of the dispenser.

  • Node.js - We used Node.js for the server of our dispenser, which is a light-weight and efficient environment that uses JavaScript for building server-side applications

  • Express - The Express framework is used to simplify the process of building the server and APIs, specifically used for defining routes to handle HTTP requests and utilizing middleware to parse request bodies and error handling.

  • Axios - We used Axios to send HTTP requests from the dispenser to the mobile app for communication purpose

  • PM2 - PM2 is used to manage and run the servers of the dispenser in the background, and handles automatic reboot when the server crashed

  • Ngrok - ngrok is used to forward the requests of the local server to a public URL that can be reached from anywhere in the world

  • Arduino Mega - The Arduino Mega board is the microcontroller that we use to communicate with the AML-S905X-CC and to control the connected peripherals. The Arduino Mega receives and sends commands on a serial port connected to the AML-S905X-CC. The Arduino Mega houses 54 digital pins, many of which are used to control the stepper motors which drive the dispenser.

  • C++ - The code for the Arduino Mega is written in a subset of C++, known as the Arduino Language. This language allows for low-level access to hardware and high performance, making it suitable for programming microcontrollers. We make use of the default Arduino library, as well as the Arduino Stepper Motor library.

  • AML-S905X-CC - The AML-S905X-CC (Le Potato) is a single board computer that we use to host the dispenser server.

  • Ubuntu Server - The Ubuntu server provides a Linux environment to run all of the applications and servers of the dispenser

  • 28BYJ-48 Motor - The 28BYJ-48 motor and ULN2003 stepper motor drivers are used to control each compartment of the physical dispenser. This stepper motor is sufficiently accurate enough to consistently dispense medication, and it is easily controlled with built in Arduino libraries.

Overall Design

img3

Popular repositories Loading

  1. med_mobile med_mobile Public

  2. .github .github Public

Repositories

Showing 2 of 2 repositories
  • .github Public
    MedManageW/.github’s past year of commit activity
    0 0 0 0 Updated Jun 8, 2023
  • MedManageW/med_mobile’s past year of commit activity
    0 0 0 0 Updated May 26, 2023

Top languages

Loading…

Most used topics

Loading…