TSD
TSD
GUIDE
MINOR PROJECT REPORT
BACHELOR OF TECHNOLOGY
(Department of Artificial Intelligence)
1
ST. VINCENT PALLOTTI COLLEGE OF
ENGINEERING AND TECHNOLOGY-NAGPUR
DEPARTMENT OF ARTIFICIAL INTELLIGENCE
CERTIFICATE
Certified that this project report “MedAssist: Basic Health Symptom Guide” is
the bonafide work of SAKSHI BANSOD , AANCHAL KALAMBE, DEJIRANI
MATE and NAYANA DHOTE who carried out the micro project work under
my supervision in partial fulfillment of IV Semester, Bachelor of Engineering in
ARTIFICIAL INTELLIGENCE of RASHTRASANT TUKADOJI MAHARAJ
NAGPUR UNIVERSITY, NAGPUR.
2
Abstract
3
Acknowledgement
We would like to express our sincere gratitude to Prof. Aparitosh Gahakari for his
invaluable guidance and support throughout this project.
Our appreciation extends to Department of Artificial Intelligence, SVPCET
Nagpur and our educators for providing the foundational knowledge.
We acknowledge our peers, Sakshi Bansod, Aanchal Kalambe, Dejirani Mate and
Nayana Dhote for their helpful discussions and contributions.
Furthermore, we recognize the developers of the open-source tools and libraries
utilized in this project. Finally, we thank potential future users and contributors.
This project was made possible by the collective support and resources provided
by these individuals and entities.
4
List of Figures
5
TABLE OF CONTENTS
6
Chapter 1: Introduction
1.Introduction to Project
MedAssist is a user-friendly Java-based application developed to provide basic
healthcare suggestions based on common symptoms like fever, cold, and
headache. Designed with object-oriented programming principles and enhanced
with a graphical user interface (GUI) using Java Swing, this application aims to
serve as a quick reference guide, offering home remedies and advice for when to
consult a doctor. MedAssist is not a replacement for medical consultation but
provides initial guidance for users.
2.Project Category
Category: Application or System Development
This project falls under Application Development as it involves building a
standalone desktop application using core Java concepts including object-
oriented programming, exception handling, multithreading, and GUI
programming with Swing.
3.Objectives
To develop a Java application that assists users with health suggestions
based on input symptoms.
To implement object-oriented programming concepts like inheritance,
polymorphism, and interfaces.
To utilize Java packages, exception handling, arrays, and multithreading in
a single integrated application.
To provide a clean GUI interface that enhances user experience.
To simulate background processing (like loading suggestions) using
multithreading.
7
4.Problem Formulation
In many cases, individuals encounter minor health symptoms but hesitate to
consult a doctor immediately. They often seek quick and reliable suggestions or
home remedies. However, finding accurate and consolidated information can be
confusing or misleading. There's a need for a simplified, non-diagnostic tool that
guides users in understanding common symptoms and potential remedies, along
with indicators for when medical attention is required.
5.Identification/Reorganization of Need
There is a growing trend of self-care, especially for minor ailments. People often
use online platforms or health forums for suggestions, which may not be
trustworthy. A localized, lightweight, and quick-response application that offers
non-diagnostic health suggestions based on symptoms would meet this need
effectively. MedAssist reorganizes and simplifies this need into a Java
application, ensuring reliability and clarity for end-users.
6.Existing System
In the existing scenario:
People use websites or apps like WebMD or Google search to find
remedies.
These platforms often require internet connectivity and sometimes
overwhelm the user with too much information.
Most systems are either too complex or part of large healthcare suites not
focused solely on basic symptom assistance.
8
Array and String Logic: Efficient storage and search of symptom-
suggestion pairs.
8.Proposed System
9
Chapter 2: Requirement Analysis and
System Specification
1.Feasibility Study
Technical Feasibility
The project is technically feasible as it utilizes Java, a well-supported,
object-oriented programming language. Development tools like JDK and
VS Code are open-source, lightweight, and widely used. The application
does not require any third-party APIs or network resources, allowing it to
run efficiently on local machines without dependencies.
Economical Feasibility
The development of the project is cost-effective since all required tools and
resources are freely available. No licensing fees or hardware upgrades are
necessary. It is suitable for students and educational institutions with
limited budgets.
Operational Feasibility
The application is simple to operate, requiring only basic user input to
generate useful health-related suggestions. It can be used on any computer
system with a Java environment, making it accessible and operationally
feasible for the target users.
10
Process user input to match known symptoms.
Performance Requirements
Quick response time for user queries.
Dependability Requirements
Input validation to ensure the program handles unknown symptoms
gracefully.
Maintainability Requirements
Code is divided into multiple packages for better modularity.
3.Validation
Each user input is validated to check against predefined symptoms.
4.Expected Hurdles
Spelling errors or typos in user input may lead to symptom
mismatch.
GUI layout issues may arise when scaling the interface for more
features.
12
Chapter 3: System Design
2. Detail Design
The system consists of the following core classes:
13
SuggestionEngine: Retrieves suggestions based on symptoms.
14
3.Data Dictionary
15
4. User Interface Design
Console Version:
Simple text input for symptoms
Clear output of suggestions
Error messages for invalid inputs
GUI Version (Swing):
JTextField for user input
JButton to submit
JTextArea for displaying suggestions
Tooltips and labels for guidance
5. Database Design
For now, the application uses arrays or hardcoded data for symptoms and
remedies. However, for future expansion, a small relational database can be used.
6. Normalization
The schema is already normalized to 3NF:
No repeating groups (1NF)
Each non-key attribute depends on the whole primary key (2NF)
No transitive dependency (3NF)
Database Manipulation (Future Scope)
Use SQL commands to insert, update, and query symptom-suggestion
pairs.
Option to load data dynamically from the database instead of hardcoding.
Database Connection Controls and Strings (Future Scope)
JDBC (Java Database Connectivity) can be used.
7.Methodology
Development Methodology:
The Iterative Waterfall Model has been followed in this project. Initial
development focused on building the basic console application. Later,
enhancements like GUI and multithreading were added in a phased manner. Each
phase allowed improvements and debugging of the previous iteration.
16
Chapter 4: Implementation, Testing, and
Maintenance
1. Introduction to Languages, IDEs, Tools and Technologies Used
for Implementation
The implementation of the MedAssist project was carried out using the Java
programming language. Java was chosen due to its platform independence,
object-oriented features, and widespread usage in both academic and industrial
applications. The Java Swing library was used for building a basic graphical user
interface (GUI), while the initial version was built using the standard console-
based interface.
The primary tools and technologies used include:
Programming Language: Java 21
Compiler: OpenJDK 21 (with manual javac and java usage via Command
Prompt)
Build & Execution Tools: Command-line scripts (javac, java, -cp classpath
configuration)
17
2. Coding Standards of Language Used
The following coding standards and conventions were followed throughout the
development process:
Naming Conventions:
Class names follow PascalCase (e.g., UserInput, SpecificSymptom)
Code Structure:
Each class was kept in its respective file and package to maintain
modularity
18
Each class has a header comment stating its purpose
GANTT Chart:
A timeline view was created manually in Excel to track:
Design: 3 days
Implementation: 5 days
19
Testing: 2 days
Documentation: 3 days
OpenProj (Alternative):
An optional tool for creating and visualizing project timelines and resource
allocation.
Dependencies and milestones were mapped for each module development.
Testing Techniques:
Unit Testing: Each class was tested individually, especially the
getSuggestions() method of SpecificSymptom
20
Test Cases:
Test Plan:
Phase 1: Test console version completely.
21
Chapter 5: Results and Discussions
The layout follows a clean vertical flow using layout managers, making it easy to
read and operate. Colors and font styling have been chosen to reduce eye strain
and emphasize key interactions.
22
5.2 Brief Description of Various Modules of the System
1. UserInput Module
Captures input from the user through GUI elements.
3. SuggestionEngine
Acts as the logic handler.
23
4. SuggestionLoader (Multithreading)
Extends the Thread class.
24
Figure 5.1 Screenshot 1: Initial User Interface
25
Figure 5.2(ii) Screenshot 2: Output Display
26
5.4 Back-End Representation (Database to Be Used)
Currently, the application does not use an external database. Instead, it relies on
predefined data structures (like arrays and hash maps) within the
SuggestionEngine class to manage symptoms and their remedies.
Why no DB now?
Simple use-case doesn’t require persistent storage.
Helps maintain portability and ease of execution across machines.
Future Plans:
If scaled further, a database like SQLite or MySQL can be used to:
Store an extensive list of symptoms and suggestions.
Track user interaction history or preferences.
Enable admin-level symptom/medicine management.
27
Chapter 6: Conclusion and Future Scope
6.1 Conclusion
28
6.2 Future Scope
While the current version of MedAssist offers a basic functionality for health
advice, there are many opportunities for further enhancement and expansion.
Some potential directions for future development include:
29
6.2.3 User Interface Enhancements
Mobile Application: To make the system more accessible, a mobile app
version could be developed for both Android and iOS. This would allow
users to access the health advice directly from their smartphones, making
it easier to use in emergencies or on the go.
6.3 Conclusion
The MedAssist project has proven to be an insightful journey into the application
of software solutions in the healthcare domain. The future scope of this project is
vast, offering ample opportunities to innovate and enhance the system in ways
that can significantly impact how individuals approach health and wellness.
Whether through the expansion of symptom databases, integration with AI, or
further UI enhancements, MedAssist has the potential to become a powerful tool
for users seeking reliable health advice.
31
Appendix A: Development Environment
1. Hardware Requirements:
Component Specification
2. Software Requirements:
32
3. Folder Structure:
To ensure organized and modular code, the project follows this folder structure:
MedAssistJavaProject/
│
├── src/
│ ├── com/
│ └── medassist/
│ ├── ui/ → User Interface Classes (Console & Swing)
│ ├── symptoms/ → Symptom-related classes
│ ├── suggestions/ → Logic for providing suggestions
│ ├── utils/ → Utility classes like SuggestionLoader
│ └── exceptions/ → Custom exception classes
├── out/ → Compiled class files
├── sources.txt → List of all .java files
4. Configuration Settings:
33
- Use PowerShell or Command Prompt for compiling (javac) and running (java)
programs
- Compilation: javac -d out @sources.txt
- Execution: java -cp out com.medassist.ui.HealthGuideApp
6. Code Snippets:
34
public String getName() {
return name;
}
}
@Override
public String[] getSuggestions() {
switch (name.toLowerCase()) {
case "fever":
return new String[]{"Stay hydrated", "Take paracetamol", "Rest
well"};
case "headache":
return new String[]{"Avoid bright lights", "Apply balm", "Take rest"};
default:
return super.getSuggestions();
}
}
}
35
3. Class: SuggestionEngine (Business Logic Layer)
package com.medassist.suggestions;
import com.medassist.symptoms.SpecificSymptom;
import java.util.Scanner;
36
5. Class: SuggestionLoader (Multithreading + Synchronization)
package com.medassist.utils;
import com.medassist.suggestions.SuggestionEngine;
@Override
public void run() {
synchronized (this) {
System.out.println("\n Loading suggestions for: " + symptom + "...");
String[] suggestions = engine.getSuggestions(symptom);
System.out.println("\n Suggestions:");
for (String s : suggestions) {
System.out.println("- " + s);
}
}
}
}
37
6. Main Class: HealthGuideApp (Entry Point)
package com.medassist.ui;
import com.medassist.utils.UserInput;
import com.medassist.utils.SuggestionLoader;
import com.medassist.suggestions.SuggestionEngine;
try {
loader.join();
} catch (InterruptedException e) {
System.out.println("Error loading suggestions.");
}
38