Patient Database System
Quick Links: Github Repo
Table of Contents:
Introduction:
This project involved designing and implementing a database system for the Patient Assistance Network (PAN), a non-profit organization supporting patients through personalized care and resources. The database tracks a wide variety of organizational data, including clients, employees, volunteers, donors, and their interactions. By combining expansive database design, SQL query development, and Java-based application functionality, this project enables PAN to manage operations efficiently and retrieve critical information to drive decision-making.
Goal: The primary objectives of the project were to:
Design and implement a scalable database system to track PAN’s clients, volunteers, employees, donors, and teams.
Develop SQL queries and procedures to handle common operations, such as managing personnel, tracking donations and expenses, and generating reports.
Build a user-friendly Java application that integrates seamlessly with an Azure SQL database to execute queries and manage data.
Key Questions:
How can PAN efficiently manage and query data for clients, teams, and personnel?
What reports can be generated to provide actionable insights, such as total expenses by employee or donors who also work as employees?
How can the system ensure scalability for growing operational needs?
Process:
Tools: Azure SQL Database for database creation and query execution and Eclipse IDE with JDBC for developing the Java application to interact with the database.
Methodology:
Database Design: Created tables with appropriate constraints and indexing strategies for optimized performance. This included careful mapping of the data requirements, such as tracking emergency contacts, team memberships, and donations.
Query Development: Wrote 15 key SQL queries to handle database operations, including adding personnel, generating reports, and performing bulk updates.
Java Application: Developed an interactive program with a user-friendly menu, allowing users to execute queries, import/export data, and manage the database.
Time Management: To meet the project deadline, I divided tasks into smaller, manageable goals with estimated completion times. This structured approach helped ensure steady progress and allowed time for testing and debugging.
Results:
The completed system supports:
Data Management: Seamless addition, retrieval, and update of data for clients, volunteers, employees, and donors.
Advanced Queries: Efficient execution of complex queries, such as total expenses by employee or donors who are also employees.
User Interaction: A Java-based interface for streamlined database operations.
Learnings:
This project allowed me to integrate technical skills with practical problem-solving to address real-world needs. The PAN Database System not only demonstrates my ability to design and implement complex systems but also highlights my capability to manage projects effectively, work with cross-functional tools, and deliver actionable results. Key takeaways include:
Technical Skills:
Developed hands-on expertise with SQL, including designing tables, creating indexes, and writing stored procedures.
Enhanced my understanding of Java and database integration using JDBC.
Project Management:
Gained experience in breaking down complex projects into smaller tasks, estimating completion times, and meeting deadlines efficiently.
Scalability and Design:
Learned to design systems that balance scalability with ease of use, ensuring the database can support future growth.