Inspiration

A couple of months ago I was suffering from back pain, so I went to an Orthopedist. At his clinic, I had to register myself the second time because I lost the file which I got from the previous visit and the worse part is that I had to pay extra 200 bucks for that new file. That was the instant when I realized that something is wrong and it should be fixed, but I was on rest for some time and then time just flew away. Four days ago I found this HackFit hackathon and, the problem which I faced at that clinic just struck me again, So this time I decided to make a system for clinics/hospitals which would properly manage the information of patients and keep it stored in the hospital's database. As usual, I was attending a Hacker Hangout on MLH's Discord Server, where one of the MLH coaches shared her experience of such a similar incident with her ophthalmologist and at that point, I decided that I would make a Patients Information Management System for an ophthalmologist's clinic.

What it does

My project manages information of a patient visiting a clinic of an ophthalmologist. It adds information of new patients as well as updates the information of existing patients whenever required. The information is stored on a secured database.

How I built it

The tech stack consists of

  • Languages - Java
  • GUI Toolkit - Swing
  • Tools - Apache NetBeans
  • Database - MySQL

I have used Swing for providing a graphical user interface (GUI). The reason I choose Swing over Abstract Window Toolkit (AWT) is that Swing provides a more sophisticated set of GUI components than the Abstract Window Toolkit. I have used NetBeans IDE for developing the application. First I started developing the login page which requires the user to enter a username and password in order to log in to the system and make changes. I designed the UI using NetBeans GUI Builder. The next step was to create the home page which would include four buttons on top. Each of the buttons was going to have its respective function. The First would be for adding information of a new patient. The second would be for searching or updating information of an existing patient. The third button would be responsible for showing the list of all existing patients with their information arranged in a tabular form. The final button would be for logging out of the application. Again I designed the UI for the home page using NetBeans GUI Builder as per the requirement and then connected my application to MySQL database using MySQL JDBC(Java Database Connectivity) driver. After this, I wrote the code responsible for accomplishing the task of adding or updating information of patients and logging out of the system securely.

Challenges I ran into

Honestly, every step was a challenge for me as I was using the above-mentioned tech stack for the very first time and on top of that, I was working solo :(. Right from installation to Connecting the database to the IDE, everything would have been impossible without "Google". Some of the notable challenges were :

  • Connecting the IDE with the MySQL Database was very challenging. It required a special java class and a dependency named MySQL JDBC(Java Database Connectivity) driver. It was relatively easy to code the require java class but installing the dependency was difficult. In order to add the dependency Group ID, Artifact ID and version of the .jar file was required and after that installation of the artifact had to be done manually with the help of the required .jar file
  • The second main challenge which I faced was to populate the dropdown with the incoming data from the database. I still couldn't figure this out, so instead of a dropdown, I have used a normal Text Field.

Accomplishments that I'm proud of

I am proud that I have learnt so many things in just 2 days and especially the fact that I solved a problem which many of us face in our daily life made my day.

What I learned

I learned about using Swing and NetBeans GUI Builder to build the interface of a java application. I also was on top of the world when I successfully connected my application to the MySQL database via the mentioned IDE. I learned more about accessing a static field and installing a dependency in NetBeans IDE. I am also more confident with MySQL commands.

What's next for Patients Information Management System

Adding dropdowns for making the application more convenient to use and implementing other technologies like blockchain for storing patients information in a more secure way.

Built With

Share this project:

Updates