SOFTWARE ENGINEERING LAB
ASSESSMENT-1
Name: A. Devi Pranavi
Reg no. : 22BCE3810
Lab Slot: L27+L28
Title of Project: Pet Adoption Platform
ABSTRACT
The focus of this project is on an online Pet Adoption Platform, where
people who are willing to adopt pets will be brought together. The
website and mobile application will be user-friendly, enabling the user to
search for pets by type, age, breed, or location. It will have a secure
login for users, detailed profiles for pets, and a system for managing
adoption requests. The platform aims to simplify the adoption process,
ensure transparency, and promote responsible pet ownership. It will also
suggest educational resources, such as pet care tips and vet directories,
to support adopters. This project hopes to bridge the gap between
adopters and caretakers in order to reduce the number of stray and
abandoned animals. It also aims to raise awareness about animal
welfare and encourage community participation in pet adoption efforts.
Project Scope:
1. User Profiles: Enable individuals, shelters, and organizations to have
accounts for posting pets for adoption.
2. Pet Listings: Include profiles with pictures, health status, and other
necessary information.
3. Search and Filter: Improvises searching by pet type, breed, size, age,
and location.
4. Adoption Process Management: Request forms and the direct
messaging for adoptions along with status tracking.
5. Educational Resources: Guides on pet care, adoption tips, and legal
guidelines.
6. Mobile App and Website: Ensure that access to the website is
available on both.
7. Admin Dashboard: Manage user activities, check listings verification,
and monitor the efficiency of the platform.
8. Scalability: To include features like donation drives or pet supply sales
in future.
9. Community Engagement: Hold adoption drives and events to connect
the shelters with adopters.
Functional Requirements:
1. User Registration and Login:
- Users (adopters and shelters) can sign up and log in securely.
- Different access levels for adopters and shelters (e.g., shelter
admins).
2. Pet Listings and Search:
- Demo a list of pets that can be adopted with filters (type, breed, size,
age, location). There's a detailed profile for each pet, which includes
photos and health details. The status of whether a pet has been
adopted is available.
3. Adoption Requests:
Adopters can apply to adopt pets.
- Shelters can accept, decline, or request more information on requests.
4. Shelter Tools:
- Manage pet profiles (add, update, or delete).
- View reports on adoption rates and pet status.
5. Messaging:
- Secure communication between adopters and shelters.
- Notifications for new pets, updates, or adoption requests.
6. Donations and Fees:
Support online payments for donations or adoption fees.
7. Reviews and Feedback:
Adopters can leave reviews about their experience with shelters and
the adoption process.
8. Mobile-Friendly Design:
- Works great both on mobile phones and computers.
Non-Functional Requirements:
1. Performance:
a. Fast browsing with no jerk.
b. Many users can be operated at the same time without any time lag.
2. Scalability:
a. Ready to accommodate more users, pets, and shelters in the future
as well.
3. Security:
- Protect user accounts by ensuring safe log in and encrypt. It ensures
the data about pets or a pet's owner is secured from hackers.
4. Usability: - User friendly with a minimalistic design. It should
accommodate tools like a screen reader for users who need this
functionality. 5. **Reliability
- System works 99.9% of the time with backups to prevent data loss.
- Keep data updated and synced correctly.
6. Maintenance:
- Easy to update and fix the system with clear documentation for
developers.
7. Compliance:
- Follow rules for privacy, data protection, and ethical practices in pet
adoption.
8. Global Use:
- Support multiple languages and adapt to regional needs for wider
accessibility.
Process Models
1. Agile Model:
The Agile Model is a software development methodology that
emphasizes flexibility, collaboration, and iterative progress. It
divides the project into small, manageable sprints, each delivering
a functional part of the software. Agile encourages frequent
interaction with stakeholders, adaptability to changing
requirements, and continuous improvement throughout the
development process.
- Focuses on customer collaboration and quick delivery.
- Iterative cycles called sprints (usually 2–4 weeks).
- Encourages regular feedback and adjustments.
Relevance
- The pet adoption platform is user-centric, and requirements may evolve
as user feedback and stakeholder input come in.
- Flexibility is needed to iteratively improve features like pet browsing,
communication tools, and shelter management.
- The collaborative approach ensures that shelters and adopters' needs
are continuously met.
2. Iterative Model:
The Iterative Model is a software development approach that
builds the system incrementally. In this model, the project is
divided into smaller iterations, with each iteration focusing on
adding or refining features. It allows partial implementation of the
system early in the process and evolves it based on feedback or
evaluation at the end of each iteration.
- Develops and delivers in small iterations.
- Each iteration includes planning, design, development,
testing, and review.
- Feedback from users helps refine subsequent iterations.
Relevance
- The platform can be built in incremental steps, starting with basic
functionality and improving in each iteration.
- Focuses on refining the product based on each iteration, which aligns
with ensuring a robust and user-friendly experience.
3. Spiral Model:
The Spiral Model is a risk-driven software development process
combining elements of both iterative development and the Waterfall
Model. It emphasizes identifying and mitigating risks at every phase
of development. Each cycle (or "spiral") involves four main phases:
planning, risk analysis, engineering, and evaluation.
- Iterative with a strong focus on risk assessment and management.
- Allows for prototypes to be created and evaluated.
- Each spiral results in a more refined version of the product.
Relevance
- The platform involves some risks, such as ensuring secure data
handling, scalability, and user adoption.
- Combines iterative development with risk management, making it
suitable for addressing challenges proactively.
Work breakdown Structure (WBS)
WBS (Work Breakdown Structure) is a project management tool that
organizes and defines the total scope of a project. It breaks down the
project into smaller, more manageable components or deliverables in a
hierarchical structure. Each level of the WBS provides greater detail
about the tasks, activities, or outputs required to achieve the project's
objectives.
Hierarchial Levels:
1. Project Initiation
1.1 Requirement Gathering
• Identify functional requirements (user registration, pet
browsing, etc.).
• Identify non-functional requirements (scalability,
performance).
• Conduct stakeholder meetings (shelters, adopters,
developers).
1.2 Feasibility Analysis
• Analyze technical feasibility.
• Prepare project budget and timeline.
• Identify potential risks.
1.3 Project Planning
• Create a project schedule.
• Define team roles and responsibilities.
• Develop risk management plan.
2. System Design
2.1 Architectural Desig
• Define system architecture (front-end, back-end, database).
• Select tools and technologies (frameworks, hosting
platforms).
2.2 UI/UX Design
• Design wireframes and mockups.
• Conduct user feedback sessions for UI approval.
2.3 Database Design
• Design database schema for pet and user information.
• Define relationships between entities.
3. Development
3.1 Front-End Development
• Develop user interfaces (registration, pet browsing).
• Ensure responsive design for mobile and web.
3.2 Back-End Development
• Implement user authentication and authorization.
• Develop APIs for data handling (pet search, adoption
requests).
3.3 Database Implementation
• Set up the database.
• Populate initial data (e.g., test pet profiles).
3.4 Integration
• Integrate front-end and back-end.
4. Testing
4.1 Unit Testing
• Test individual modules (e.g., pet search, user registration).
4.2 Integration Testing
• Verify data flow between front-end and back-end.
4.3 *System Testing*
• Test the platform as a whole for performance, usability, and
security.
4.4 User Acceptance Testing (UAT)
• Conduct testing sessions with stakeholders.
5. Deployment
5.1 Prepare Deployment Environment
• Set up production servers.
• Configure DNS and hosting.
5.2 Deploy System
• Launch the platform for public access.
• Monitor initial user activity.
6. Maintenance
6.1 Bug Fixes
• Address reported issues.
6.2 Feature Updates
• Add new features based on user feedback.
6.3 System Monitoring
• Monitor system performance and security.
WBS DIAGRAM:
PERT CHART
Task 1: Define Project Scope and Goals
• Identify the purpose, objectives, and outcomes of the project.
Determine the scope of work and define key success metrics.
Task 2: Conduct Research & Analysis
• Research competitors and analyze market trends to identify key
features and differentiators for the platform.
Task 3: Gather User Requirements
• Conduct surveys, interviews, or workshops with potential users
(adopters, shelters, etc.) to understand their needs and
expectations.
Task 4: Design Wireframes and User Interface (UI)
• Description: Create wireframes, mockups, and the overall visual
design of the platform for both desktop and mobile devices.
Task 5: Develop Front-End Framework
• Code the front-end of the platform, including the main pages,
navigation, and responsive design elements.
Task 6: Set Up Database
• Build the database to store user data, pet profiles, shelter
information, and adoption records securely.
Task 7: Implement Search & Filter Functionalities
• Add features for users to search and filter pets based on criteria
like breed, size, location, etc.
Task 8: Add User Registration and Login System
• Create a secure system for users to sign up, log in, and manage
their accounts.
Task 9: Create Pet Profile Features
• Enable shelters or individuals to create detailed pet profiles with
photos, descriptions, and adoption status.
Task 10: Develop Matchmaking Algorithm
• Design an algorithm to match pets with potential adopters based
on preferences and compatibility.
Task 11: Set Up Payment Gateway
• Integrate a payment system to process adoption fees or donations
securely.
Task 12: Conduct Testing & Debugging
• Perform rigorous testing (functional, usability, security, etc.) to
ensure the platform works [Link] 13: Deploy the
Platform
• Launch the platform to a live environment where it can be
accessed by users.
Task 14: Promote Platform Launch
• Use digital marketing, social media, and partnerships to promote
the platform and attract users.
Task 15: Gather Feedback and Iterate
• Collect feedback from users after launch and make iterative
improvements to the platform.
Gantt Chart