MedList

MedList is a web application that allows users to keep track of their medications, supplements, and medical conditions. The user has the ability to signup, login, create, modify, and search medications and supplements. This project was built using the Ruby on Rails framework. Developed utilizing the MVC pattern.

MedList Project

Purpose and Goal

Coming from the medical field, there are alot of patients both young and old taking numerous medications and supplements, but have no idea as to what they are taking let alone the reason why they are taking it. MedList was created to solve that problem. For the user to greatly benefit having a quick reference to all of their medications, supplements, and conditions in one place.

Architecture

The Ruby on Rails framework was used for this project to manage related data through complex forms and RESTful routes. The Model View Controller principle was implemented to divide the work of the application into three separate but closely cooperative subsystems. The Model to maintain the logic and relation between the database (ActiveRecord), the View to serve as the user interface (ActionView), and the controller to handle queries for the model and to organize data into a form that fits the needs of a given view (ActionController).

Problems & Thought Process

Like most projects, I ran into a few challenges along the way. The most challenging part, before writing any code, was deciding on the models and their associations. I had to make sure that the models were set up correctly in order for the application to work the way I wanted it to. Carefully mapping out an approach path was crucial to avoiding costly mistakes later while building the application.

Lessons Learned

I was able able to take my Ruby knowledge to the next level with this project. By learning the Ruby on Rails framework, I was able to understand how to fully craft the backend using the Model-View-Controller design pattern, how to create RESTful routes for HTTP requests, and how to implement user authentication using OmniAuth.