Jayaprakash Narayan College of Engineering
Jayaprakash Narayan College of Engineering
BACHELOR OF TECHNOLOGY
IN
COMPUTER SCIENCE AND ENGINEERING
Submitted By
The Orphanage Management System is software designed to streamline the management of orphanages,
assisting both service personnel and administrative authorities. It automates the otherwise time-consuming and
costly manual processes, providing an efficient solution for maintaining records. The system includes two main
modules: Administrator Module and User Module. Administrators manage orphan and elderly records,
authorize deletions, and create tokens for guardian registration. Guardians, in turn, are responsible for
generating tokens to register orphans or elderly individuals.
Each orphan or elderly individual is assigned a unique authentication code and ID, ensuring secure and accurate
data management. The system provides a simple, user-friendly interface, making it easier to organize and
retrieve information. By reducing manual effort, the Orphanage Management System saves time, improves data
accuracy, and enhances the overall management process, ensuring better care and support for orphans and
elderly individuals.
1.2 Purpose
The Orphan Management System aims to provide a comprehensive and efficient solution for managing and
tracking the welfare of orphaned children. Its primary purpose is to centralize the collection, storage, and
management of critical data about orphaned children, including personal details, medical records, and
institutional placements. Additionally, OMS will facilitate resource allocation by ensuring that donations and
supplies are distributed effectively based on the specific needs of the children.
1
1.3 Scope
The scope is limited to managing orphan profiles, placements, and welfare without extending to
financial management or detailed information. The system will not include direct integration with
external systems like healthcare or education platforms, nor will it automate the legal aspects of
adoption. Additionally, it will not handle interactions between orphaned children and biological
parents beyond the adoption process. Initially designed for use in specific regions, the system is
expected to comply with local child protection regulations, with potential for future scalability and
international adaptation.
1.4 Methodology
The methodology for the Orphan Management System focuses on flexibility and continuous
improvement. In the initial phase, we will gather detailed requirements from volunteers such as
orphanage staff, social workers and adoption agencies. This will help us understand their specific
needs and expectations for the system, such as how to manage child profiles, track placements, and
generate reports. The development will be carried out in short, iterative cycles (sprints), each
focused on building and refining specific features. At the end of each sprint, we will review the
progress with stakeholders, collect feedback, and make any necessary adjustments to the system.
The development process will be broken into cycles. Each cycle will focus on developing specific
features of the system, such as child registration and welfare monitoring. At the end of each cycle, a
review will be conducted with volunteers to gather feedback, assess progress, and make adjustments
to the development plan as needed.
2
2 SYSTEM ANALYSIS
2.1 Existing System
The existing system for managing orphanages relies heavily on manual processes, which are
time-consuming, inefficient, and prone to errors. Currently, administrators and staff members
record and maintain information about orphans, elderly individuals, and guardians using
paper-based methods or basic digital tools, which often lack proper organization and data
security. Tracking details such as registration, personal records, guardianship assignments, and
updates requires significant manual effort. The absence of a centralized system makes it
difficult to retrieve or update records promptly, leading to delays in decision-making.
Additionally, managing authentication, such as providing unique identification codes for
guardians or orphans, is a cumbersome process in the current setup.
Due to the lack of automation, the system is costly, prone to data duplication, and challenging
to audit or monitor effectively. These limitations hinder the ability of administrators to ensure
seamless operations and deliver quality care to orphans and elderly individuals.
Disadvantages
Time-Consuming Processes: Manual recording and updating of data require significant time
and effort, leading to delays in important tasks like registration and record management.
Prone to Errors: Human errors, such as incorrect data entry or misplacing records, are
common, compromising the accuracy and reliability of the information.
Lack of Centralization: Data is often scattered across different records or files, making it
difficult to retrieve, update, or cross-check information promptly.
Insecure Data Management: Without proper authentication and security measures, sensitive
information about orphans, elderly individuals, and guardians is at risk of unauthorized
access or misuse.
Costly Maintenance: Maintaining paper-based records or basic digital tools often incurs
higher long-term costs due to inefficiency and the need for frequent updates or
replacements.
3
2.2 Proposed System
The proposed Orphanage Management System is a comprehensive software solution designed to
address the inefficiencies of the existing manual system. It incorporates two main modules:
Administrator and User. The system automates tasks such as managing orphan and elderly
records, creating authentication codes, and generating registration tokens for guardians and
dependents. With a centralized database, it ensures secure, accurate, and easily accessible data
management. The system features a user-friendly interface, enabling seamless organization and
retrieval of information. By automating routine processes, the proposed system saves time,
reduces errors, and enhances operational efficiency, ensuring better care and support for
orphans and elderly individuals.
Advantages
● Time Efficiency: Automation of tasks such as data entry, token generation, and record
management saves significant time compared to manual processes.
● Improved Accuracy: The system minimizes human errors, ensuring the accuracy and
reliability of stored information.
● Centralized Data Management: All records are stored in a centralized database, making it
easier to access, update, and retrieve information quickly.
● Enhanced Security: Unique authentication codes and secure data storage ensure
confidentiality and prevent unauthorized access.
● User-Friendly Interface: The intuitive interface simplifies operations for administrators and
guardians, requiring minimal training.
4
3. REQUIREMENTS
The Comprehensive Orphan Management System is compatible with any Android device or
emulator that satisfies the minimum system requirements, encompassing sample processing power,
memory, and storage capacity. To ensure optimal performance, users are recommended
To utilize an Android mobile device equipped with at least 4GB of RAM and running the specified
Android 10 operating system or a more recent version. This configuration ensures a
Seamless and efficient experience for users interacting with the Orphan Management System on
their Android devices, providing a reliable platform for accessing and managing orphan related
information.
RAM 8 GB or higher
5
3.2 SOFTWARE REQUIREMENTS
Security: Java is known for its emphasis on security. The language incorporates several features
that ensure that applications run securely, making it ideal for web-based and enterprise applications
where security is paramount. Java’s security model relies heavily on the Java Virtual Machine,
which isolates running Java programs to prevent them from accessing sensitive resources on the
host machine.
Simple: Java is designed to be a simple and user-friendly programming language. It eliminates the
complexity of features like pointers, which are found in languages like C and C++. Pointers can
lead to memory-related issues such as memory leaks and segmentation faults, but Java handles
memory management for developers through automatic garbage collection. Additionally, Java does
not support operator overloading and multiple inheritance (through classes), which reduces
confusion and keeps the language straightforward
6
Multiplatform Development: Java has excellent support for developing applications that can run
on different types of devices, from mobile phones (via Java ME) to large enterprise servers. Java’s
ability to support a wide variety of platforms, including embedded systems, makes it a highly
flexible language suitable for numerous types of development projects.
Robustness: Java is designed to be a robust language, meaning it aims to produce reliable and
error-free programs. Several features contribute to this robustness. Java’s automatic garbage
collection ensures that memory is automatically reclaimed when objects are no longer in use. This
reduces the chances of memory leaks, which are common in languages where developers manually
manage memory. The garbage collector runs in the background, finding and collecting objects that
are no longer referenced by the program, thus freeing memory for other objects.
7
3.2.2 Android Studio IDE:
Android Studio is the official Integrated Development Environment (IDE) for Android app
development. Developed by Google, it is designed specifically to make Android app development
efficient, intuitive, and powerful. Based on IntelliJ IDEA, Android Studio offers a rich set of tools
and features tailored for Android development, including code editing, debugging, performance
analysis, and UI design. Android Studio simplifies the development process for both beginners and
experienced developers, making it the go-to platform for building Android applications.
User Interface (UI) Design Tools Android Studio offers powerful tools to design and preview user
interfaces without the need for manual coding. The Layout Editor allows developers to drag and
drop UI components, such as buttons, text fields, and images, to create complex layouts.
Additionally, it supports Constraint Layout, a flexible layout manager for building responsive and
adaptive interfaces. The Preview window in Android Studio provides real-time previews of layouts,
ensuring that the UI looks good on different screen sizes and resolutions.
Emulator and Device Testing Android Studio includes a powerful Android Emulator that allows
developers to test their applications without needing a physical device. The emulator can simulate
various Android devices with different screen sizes, Android versions, and hardware features. It
supports features like multi-touch, GPS, camera, and network speed simulation, making it a
comprehensive testing tool. Additionally, Android Studio provides excellent support for debugging
and running apps on real devices via USB or over a wireless connection.
Instant Run and Live Updates Android Studio includes an Instant Run feature that allows
developers to instantly see changes made to an app without restarting the app or losing its current
state. This speeds up the development cycle significantly, especially when making small changes to
the UI or code. Live Updates also allow developers to push minor code changes and instantly view
the results on the emulator or connected device.
Firebase and Google Services Integration Android Studio seamlessly integrates with Firebase, a
mobile and web application development platform provided by Google. Developers can easily add
Firebase services such as authentication, real-time databases, cloud storage, analytics, and push
notifications to their Android apps. The integration is simple and eliminates the need for manually
configuring backend services, allowing developers to focus on building app features instead of
managing infrastructure.
8
3.2.3 Google Firebase Backend Integration:
For the backend of our project, we have opted for the Google Firebase platform. The strategic
decision ensures seamless handling operations, leveraging Firebase’s robust features for
authentication, real-time database management, and cloud storage. Firebase enhances the
scalability, security, and efficiency of our college social media app, providing a reliable foundation
for data storage and retrieval.
Google Firebase is a comprehensive platform developed by Google that provides developers with a
suite of tools for building and managing mobile and web applications. Firebase offers a range of
services designed to simplify the process of backend integration, making it easier to focus on
building the app's functionality rather than managing server infrastructure. It provides both
backend-as-a-service (BaaS) and serverless options, which allow developers to scale applications
without managing the complexities of traditional server-side architecture.
Firebase’s backend services cover essential app functionality such as authentication, real-time
databases, cloud storage, push notifications, analytics, and much more. These services are tightly
integrated into Android Studio for Android development and other platforms, making it seamless
for developers to implement backend features with minimal effort.
9
Firebase Cloud Functions are serverless functions that run in response to events triggered by
firebase features like authentication events or database changes or HTTPS requests. Cloud functions
let you run backend code without managing servers, making it a powerful tool for creating dynamic,
event-driven applications. Firebase Cloud Storage is designed to store user-generated content like
images, videos, and audio files. It allows developers to securely upload and download large files,
handle file metadata, and manage access control.
Firebase Remote Config allows developers to change app behaviour and appearance without
publishing an app update. It is used to remotely configure settings, features, and UI elements to
optimize the user experience. Firebase provides a full-featured, integrated platform for backend
services that simplifies the development of mobile and web applications. By leveraging its
1
0
comprehensive suite of tools such as Authentication, Realtime Database, Cloud Storage, Cloud
Functions, and more developers can quickly integrate powerful backend capabilities into their apps
without having to manage traditional
server infrastructure. Firebase's real-time features, scalability, and strong integration with other
Google services make it an excellent choice for modern app development.
SOFTWARE VERSION
4. SYSTEM DESIGN
4.1 UML DIAGRAMS
1
1
UML (Unified Modelling Language) Diagrams are a standardized way of visualizing and
documenting the design of a system. UML is widely used in object-oriented software development
to represent the structure, behaviour, and interactions of a system. It provides a common language
for developers, designers, analysts, and other stakeholders to communicate effectively about a
system. It is a powerful tool for modelling complex software systems. By using the various types of
diagrams, development teams can break down a system into understandable components, plan the
flow of control and data, and communicate effectively with all stakeholders involved in the project.
A Use Case Diagram is a type of behavioural diagram in the Unified Modelling Language (UML)
that is primarily used to capture the functional requirements of a system from an end-user
perspective. It illustrates the interactions between actors which can be users, external systems, or
devices and use cases representing specific functionalities or processes that the system performs.
The diagram provides a high-level view of the system's functionality and helps identify what the
system will do, without delving into how those actions will be implemented.
An Activity Diagram is a type of behavioural diagram in the Unified Modelling Language (UML)
1
3
that is used to model the workflow or the sequence of activities in a system. It visually represents
the flow of control and data from one activity to another, showing how the system responds to
various events, actions, or conditions. Activity diagrams are used primarily to describe the dynamic
aspects of a system and its processes, focusing on the flow of control rather than the structure of the
system. The primary purpose of an activity diagram is to depict the flow of control in a system,
often from one state to another, and to illustrate how activities or actions are performed
sequentially, in parallel, or under certain conditions
1
4
5. SYSTEM IMPLEMENTATION
5.1 Algorithm
The algorithm for our mini project involves the following steps:
App Initialization & User Authentication:
The app checks if the user is logged in. If not, it asks for the user's credentials and
authenticates them using a database (Firebase, etc.).
After successful login, the app redirects to the corresponding home screen for the user role
(Admin, Volunteer, or Donor).
Admin Operations:
Manage Orphans: Admin can add, edit, delete, or view orphans.
Manage Events: Admin can create, update, delete, or view events.
Manage Requirements: Admin can handle the requirements for orphans or events.
Manage Volunteers: Admin can add volunteers, assign them tasks, and manage their
assignments.
Logout: The admin can log out, which clears session data and redirects to login screen.
Volunteer Operations:
View Events: Volunteers can see upcoming events and choose to participate.
View Requirements: Volunteers can check the requirements and decide to help based on
available skills.
Participate in Event: Volunteers can join events and their participation is updated in the
database.
Logout: The volunteer can log out, which clears session data and redirects to the login
screen.
Donor Operations:
View Orphans: Donors can see a list of orphans and make donations for specific orphans.
View Requirements: Donors can view requirements related to orphans or events.
Make Donation: Donors can make one-time or recurring donations through an integrated
payment system.
Logout: The donor can log out, which clears session data and redirects to the login screen.
User Authentication (Login/Sign-up):
Use Firebase Authentication or any custom backend for user management.
Ensure proper roles (Admin, Volunteer, Donor) are assigned when the user logs in.
1
5
Firebase Database Integration:
Use Firebase Fire store or Real-time Database to manage orphans, events, requirements,
and volunteers.
Ensure that the data is properly segmented based on user roles, with Admin having full
access and Volunteers and Donors having limited access.
UI Layout:
Design separate layouts for Admin, Volunteer, and Donor. Each layout will have different
functionalities based on the user role.
Use Recycler View for lists of orphans, events, and requirements.
Use Card View or List View to display detailed information.
Logout Functionality:
Properly handle session management by clearing stored data using Shared Preferences or
Firebase Authentication when a user logs out.
Database Operations (Firebase Real-time Database or Fire store
User Authentication:
o Use Firebase Authentication for managing user login and authentication.
Volunteer Applications:
o Volunteers’ status (pending, accepted, rejected) is stored in the database.
o Admin can modify volunteer status.
Orphan Records:
o Admin manages orphan profiles and stores them in the database.
Requirements:
o Volunteers can post orphan requirements, which are stored in the database.
Donations:
o Donations made by donors are stored with details like amount, requirement ID, and
donor info.
Notifications:
o Use Firebase Cloud Messaging (FCM) to notify volunteers, donors, and admins
about application status updates, donations, etc.
1
6
Error Handling:
Login Failures:
o If login fails, show an error message like “Invalid credentials” or “Network error.”
Input Validation:
o Validate user input (e.g., empty fields, incorrect email format, donation amounts).
o Ensure that volunteers cannot post empty requirements, and donors cannot donate
amount that exceeds the requirement.
Network Errors:
If there is a network error (unable to fetch data from the database or make a donation),
show an error message: “Please check your internet connection and try again.”
1
7
5.2 Sample Code
package com.example.dreamnest;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import java.util.HashMap;
public class SignUpActivity extends AppCompatActivity {
private EditText etName, etEmail, etPassword, etPhone,etOrphName , etEst , etAddr;
private FirebaseAuth mAuth;
private DatabaseReference databaseRef;
private String userType;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signup);
mAuth = FirebaseAuth.getInstance();
databaseRef = FirebaseDatabase.getInstance().getReference();
etName = findViewById(R.id.etName);
etOrphName = findViewById(R.id.etOrphanageName);
etEmail = findViewById(R.id.etEmail);
etPassword = findViewById(R.id.etPassword);
etPhone = findViewById(R.id.etPhone);
etEst = findViewById(R.id.etOrphanageEstablish);
etAddr = findViewById(R.id.etOrphanageAddress);
userType = getIntent().getStringExtra("userType");
if(userType.equalsIgnoreCase("donor")){
etOrphName.setVisibility(View.GONE);
etPhone.setVisibility(View.GONE);
etAddr.setVisibility(View.GONE);
etEst.setVisibility(View.GONE);
}
1
8
findViewById(R.id.btnRegister).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
registerUser();
}
});
}
private void registerUser() {
String name = etName.getText().toString().trim();
String email = etEmail.getText().toString().trim();
String password = etPassword.getText().toString().trim();
String phone = etPhone.getText().toString().trim();
String orphName = etOrphName.getText().toString().trim();
mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(task -> {
if (task.isSuccessful()) {
String userId = mAuth.getCurrentUser().getUid();
HashMap<String, Object> userData = new HashMap<>();
userData.put("id", mAuth.getCurrentUser().getUid());
userData.put("name", name);
userData.put("email", email);
userData.put("phone", phone);
userData.put("orphanage_name", orphName);
userData.put("orphanage_established_on", etEst.getText().toString().trim());
userData.put("orphanage_address", etAddr.getText().toString().trim());
userData.put("status", "Pending");
databaseRef.child(userType + "s").child(userId).setValue(userData).addOnCompleteListener(dbTask -> {
if (dbTask.isSuccessful()) {
Toast.makeText(SignUpActivity.this, "Registration Successful", Toast.LENGTH_SHORT).show();
startActivity(new Intent(SignUpActivity.this,WaitingActivity.class));
finish();
} else {
Toast.makeText(SignUpActivity.this, "Database Error: " + dbTask.getException().getMessage(),
Toast.LENGTH_SHORT).show();
}
});
} else {
Toast.makeText(SignUpActivity.this, "Registration Failed: " + task.getException().getMessage(),
Toast.LENGTH_SHORT).show();}});
}}
1
9
5.3 TESTING
Software testing is the process of evaluating a software application or system to ensure that it behaves as
expected and meets the desired outcomes. The main objective of testing is to identify defects or bugs in the
system and confirm that the software works as intended, providing a quality product for end users.
1.Validation Testing
It is a crucial phase in the software development lifecycle. It ensures that the software product
meets the business requirements and the needs of the end-users. The primary objective of validation
testing is to confirm that the software is built right and performs according to expectations.
2.Functional testing
It is a type of software testing that verifies the functionality of a system or application according to
its requirements. The goal is to ensure that the software behaves as expected and performs the
required tasks correctly. It focuses on the actions, behaviours, and outputs of the system in response
to various inputs.
3.Navigational Testing
It is a type of software testing that focuses on the user interface (UI) and the navigation flow of an
application. The goal of navigational testing is to verify that users can easily navigate through the
application and access all features, functions, and information without encountering issues.
It ensures that the application provides a seamless user experience by testing the responsiveness,
user interface components, and flow between different pages, screens, or modules.
4.Loop Testing
Loop testing is a type of software testing that focuses on testing the loops or iterative structures
within the program. A loop is a programming construct that repeats a set of instructions until a
certain condition is met.
5.Condition Testing
Condition Testing is a type of white-box testing that focuses on verifying the individual conditions
within decision statements, such as if statements, switch cases, loops, and other logical constructs.
6.Output Testing
Output Testing is a type of software testing that focuses on verifying the correctness of the output
produced by a system in response to specific input conditions. The goal is to ensure that the system
2
0
generates the expected outputs, and that the outputs are accurate, consistent, and meet the
requirements outlined in the system's specifications.
5.Acceptance Testing
2
1
passw s ul
ord u
c
c
es
sf
ul
6. RESULT
2
2
2
3
Fig.6.1 Home Page Fig.6.2 Admin Login page
2
4
Fig.6.3 Admin Add Orphan Page Fig.6.4 Admin Add Requirements Page
2
5
Fig.6.7 User Donate Requirements Page and User Join Events Page
2
6
Fig.6.8 Controller Home Page
2
7
Fig.6.9 Controller Login Page
2
8
Fig.6.10 New Volunteer Registration
2
9
Fig.6.11 Controller Acceptance
3
0
7.CONCLUSION & FUTURE SCOPE
7.1 Conclusion:
The future scope of the orphan management system lies in its potential to transform the way
orphanages and related organizations manage their operations and provide care to orphans. By
integrating advanced technologies like artificial intelligence, machine learning, and data analytics,
the system can enhance decision-making processes, such as matching orphans with suitable
guardians or donors based on preferences and requirements. Expanding the system into mobile and
web platforms can make it more accessible to a broader audience, including volunteers, social
workers, and prospective adopters. Features like real-time monitoring, automated record
management, and transparent financial reporting can build trust and streamline processes.
Additionally, incorporating multilingual support and integrating with government databases or legal
systems can ensure compliance with regulations and improve the scope of adoption processes
globally. As the system grows, partnerships with NGOs, schools, and healthcare providers can be
3
1
established to ensure holistic development and better resource allocation for orphans, paving the
way for a brighter and more inclusive future.
8.REFERENCES
3
2