0% found this document useful (0 votes)
10 views16 pages

SCM Report Final

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views16 pages

SCM Report Final

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 16

Local Volunteer Network App

A REPORT

submitted by

ABHISHEK.S.B (22MIS1114)
SUKHESH KANNA (22MIS1065)
ROHINTH( 22MIS1084)

of

M. Tech. Software Engineering (Integrated)


School of Computer Science and Engineering

Completed under

Dr. B V A N S S Prabhakar Rao


School of Computer Science and Engineering

November 2024
Introduction

The student volunteer system is a web application designed to facilitate networking among students and
local volunteers. It incorporates features akin to social media platforms, including login, home, profile,
messaging, and connection functionalities. The platform aims to create a seamless and user friendly
experience while adhering to robust software construction principles to ensure scalability,maintainability,
and reliability.This report integrates key concepts from Code Complete and software construction
management,demonstrating how these principles have been applied to the development and maintenance
of the web application.

Proposed System for the Ocean App

The proposed system for the Ocean App aims to build a platform that connects local volunteers, enabling
them to share content, schedule virtual meetings, and collaborate effectively. It addresses limitations in
existing systems by emphasizing user-centric design, scalability, and seamless integration of essential
features.

Objectives of the Proposed System

1. Enhanced Connectivity:
Provide a centralized platform where volunteers can interact, share resources, and organize events
effectively.

2. Ease of Use:
Offer an intuitive interface with minimal learning curve, ensuring accessibility for users of all
technical backgrounds.

3. Content Sharing:
Enable users to post, like, and comment on content, fostering engagement and collaboration within
the community.

4. Virtual Collaboration:
Facilitate scheduling and joining virtual meetings with reminders and notifications for improved
productivity.

5. Scalability:
Ensure the platform can handle increasing users and content without compromising performance.

Bird's Eye View of Maintenance for the Ocean App

The maintenance of the Ocean App ensures that the system operates seamlessly post-deployment, adapts to
user needs, and remains reliable and secure over time. This maintenance strategy encompasses corrective,
adaptive, perfective, and preventive maintenance activities.

Key Areas of Maintenance

1. Corrective Maintenance:

o Objective: Address and resolve any issues or bugs that arise in the system after deployment.

o Examples:

 Fixing errors in post-creation functionality where multimedia uploads fail.

 Resolving issues with user authentication, such as login failures or session expiration.
2. Adaptive Maintenance:

o Objective: Modify the app to adapt to changes in the external environment, including
updates to technology or user needs.

o Examples:

 Updating the app to support newer versions of PHP or MySQL.

 Ensuring compatibility with the latest web browsers and mobile devices.

3. Perfective Maintenance:

o Objective: Enhance the app by adding new features or improving existing ones based on user
feedback.

o Examples:

 Introducing a dark mode for better user experience.

 Adding advanced search filters for better content discovery.

 Enhancing meeting scheduling features to integrate with external calendars like


Google Calendar.

4. Preventive Maintenance:

o Objective: Proactively prevent potential issues by improving the app’s reliability and reducing
future risks.

o Examples:

 Regular database optimization to avoid slow query performance as data grows.

 Implementing monitoring tools to track server health and performance.

Maintenance Workflow

1. Issue Identification and Logging:

o Users can report bugs or issues through a feedback form or a support email.

o Monitoring tools like error logs and server performance metrics help identify technical
problems.

2. Prioritization:

o Issues are categorized based on severity and impact (e.g., critical bugs vs. minor UI tweaks).

o High-priority issues like server downtime or login failures are addressed immediately.

3. Implementation:

o Fixes and updates are implemented in a staging environment to ensure they don’t disrupt
the live app.

o Testing is conducted on all changes before deployment to production.

4. Release and Monitoring:


o Updates are rolled out using a version control system like Git, ensuring proper
documentation and rollback capability.

o Post-deployment monitoring ensures the issue is resolved without introducing new


problems.

Downtime Management

In the event of downtime, the following steps ensure the app is restored quickly and with minimal disruption:

1. Notification to Users:

o Display a maintenance page explaining the downtime and providing an estimated resolution
time.

2. Root Cause Analysis:

o Analyze server logs, database activity, and code repositories to identify the cause of
downtime (e.g., server overload, broken code).

3. Immediate Fixes:

o Address critical issues such as database crashes or backend errors.

o Rollback to the last stable version if needed.

4. Post-Downtime Review:

o Document the issue, its resolution, and preventive measures to avoid recurrence.

Maintenance Schedule

1. Daily:

o Monitor error logs and user-reported issues.

o Perform regular backups of the database.

2. Weekly:

o Run performance tests on the server and database.

o Review user feedback for potential enhancements.

3. Monthly:

o Apply security patches to the underlying software stack (e.g., PHP, MySQL).

o Optimize database queries and perform cleanup tasks.

4. Quarterly:

o Review app scalability and performance under load testing.

o Plan and implement feature updates based on user feedback and analytics.

Tools and Techniques for Maintenance

1. Error Monitoring:
o Tools like Sentry or custom PHP error logs capture runtime errors and alert developers.

2. Performance Monitoring:

o Use tools like Google Lighthouse for frontend performance and phpMyAdmin for database
optimization.

3. Backup and Recovery:

o Automate daily backups of the MySQL database and store them in secure locations.

4. Version Control:

o Use Git to track changes and ensure the ability to roll back to a stable version in case of
errors.

Benefits of a Comprehensive Maintenance Strategy

 Reliability: Ensures users can access the app without interruptions or glitches.

 Adaptability: Keeps the app relevant and compatible with emerging technologies.

 User Satisfaction: Addresses user feedback promptly and adds features that enhance their
experience.

 Security: Protects user data and maintains trust through regular updates and proactive security
measures.

By adopting a proactive and structured approach to maintenance, the Ocean App can sustain long-term
usability, scalability, and user satisfaction while adapting to evolving demands and technological landscapes.

High-Quality Software Design

Application in the Ocean App:

 Modular Design:

o Each feature is encapsulated in its own module, such as:

 Content Module: Handles posting, sharing, and interacting with content.

 Meeting Module: Manages meeting scheduling, reminders, and real-time


video/audio streaming.

 User Module: Covers user authentication, profile management, and activity tracking.

 This modularity allows independent updates, ensuring new features in one module
don’t break others.

 API-Driven Architecture:

o APIs act as connectors between the front end and back end:

 RESTful APIs for CRUD operations (e.g., creating posts or retrieving user details).

 WebSockets for real-time updates (e.g., live meeting notifications).

o APIs enable seamless communication between microservices, allowing for future scalability.
Fig 1).problem reporting
Understanding Requirements

Application in the Ocean App:


 User Feedback Loops:

o Regular surveys and in-app feedback options allow users to suggest new features or report
bugs.

o Example: Users requested reminders for upcoming meetings, leading to the addition of
notification features.

 Agile Methodologies:

o Features are broken into user stories during development:

 Example: "As a user, I want to schedule a virtual meeting and receive reminders 10
minutes before it starts."

o Sprint reviews ensure iterative improvements based on stakeholder feedback.

 Prototypes and Wireframes:

o Before coding, tools like Figma are used to design and validate user interfaces.

o Example: Wireframes for the content-posting screen ensure intuitive layouts before
development begins.

Fig 2).Flow chart

Code Readability and Documentation

Application in the Ocean App:

 Consistent Coding Standards:


o Developers follow guidelines like PEP 8 (for Python) or Airbnb Style Guide (for JavaScript).

o Example: All variables and functions are descriptively named, e.g., validateUserInput() or
fetchMeetingData().

 Inline Comments and Documentation:

o Key logic sections, such as scheduling conflicts in the Meeting Module, are explained using
comments.

o API documentation is auto-generated using tools like Swagger for backend endpoints.

 README Files:

o Every module has a README.md file describing its purpose, setup instructions, and usage,
aiding onboarding for new developers.

Fig 3). Sequence Diagram

Heuristics and Metaphors in the Ocean App: Practical Implementation

This section explains how design heuristics and metaphors guide the Ocean App's development and their
practical application.

Heuristics: Practical Implementation

1. KISS (Keep It Simple, Stupid):

o Principle: Avoid overcomplicating features; focus on simplicity and clarity.

o Implementation:

 The Ocean App uses Firebase for notifications instead of building a custom solution,
ensuring faster implementation and fewer bugs.
 The app’s UI is minimalistic: core actions like posting content, joining meetings, or
accessing user profiles are limited to 2-3 clicks.

2. YAGNI (You Aren’t Gonna Need It):

o Principle: Build only what’s immediately needed; avoid speculative features.

o Implementation:

 Instead of pre-implementing AI-based content recommendations, the app initially


uses chronological ordering for posts. AI features are planned for later releases,
based on actual user needs.

 Advanced meeting analytics (e.g., attendance trends) were deferred until the basic
meeting module was stable.

3. Separation of Concerns (SoC):

o Principle: Divide responsibilities among modules for better manageability.

o Implementation:

 User Module: Focuses solely on authentication and profile management.

 Content Module: Manages post creation, likes, and sharing, independent of the
meeting module.

 Backend APIs are dedicated to specific tasks (e.g., /api/v1/createPost vs.


/api/v1/joinMeeting) to ensure clarity and reusability.

4. Fail Fast:

o Principle: Detect and handle errors quickly during development or runtime.

o Implementation:

 Validation occurs at multiple points:

 Frontend: Invalid user input (e.g., empty fields, incorrect formats) is blocked
immediately with error messages.

 Backend: Any invalid data reaching the server triggers early rejection with
descriptive HTTP responses (e.g., 400 Bad Request for malformed JSON).

 Failed transactions, such as unsuccessful post uploads, automatically roll back


changes in the database.

5. DRY (Don’t Repeat Yourself):

o Principle: Reuse code to avoid redundancy.

o Implementation:

 Shared components for validation, such as email format checks or date-time


validation, are stored in utility libraries and reused across all modules.
 Common UI elements like headers, buttons, and footers are maintained in a
centralized component library.

6. Scalability by Default:

o Principle: Design for future growth from the outset.

o Implementation:

 The app uses AWS Elastic Beanstalk to handle increasing traffic without manual
intervention.

 Databases are set up with partitioning and indexing, ensuring fast query responses
as the volume of data grows.

Metaphors: Practical Implementation

1. Ocean Metaphor:

o Concept: The app's workflows resemble the dynamic flow of ocean waves.

o Implementation:

 Waves of Interaction: User actions like posting content or scheduling meetings


trigger smooth flows via backend workflows, just like how waves interact with the
shore without disruption.

 Lighthouse (Monitoring): Tools like Datadog act as the lighthouse, signaling issues
before they become critical. For instance, if server response times spike, the
monitoring tool raises alerts immediately.

 Tide of Growth: As user numbers increase, the app scales automatically with load
balancers, akin to adjusting for rising tides.

2. Modular Town Metaphor:

o Concept: The app is designed as a "town" with different buildings (features) and roads (APIs)
connecting them.

o Implementation:

 Town Hall: The User Module serves as the central hub, managing user credentials
and profiles.

 Bulletin Board: The Content Module acts as a shared space for users to post and
view content.

 Community Center: The Meeting Module provides virtual gathering spaces for real-
time collaboration.

 APIs act as roads, ensuring smooth travel of data between modules without
congestion.

3. Library System Metaphor:

o Concept: The app operates like a library where modules represent shelves, and backend
services act as the librarian.
o Implementation:

 Shelves (Modules): Posts, users, and meetings are stored as independent entities in
the database, categorized for easy access.

 Card Catalog (Indexes): Database indexing ensures rapid retrieval of posts or user
information.

 Librarian (Backend): When a user searches for "recent posts," the backend retrieves
data in an organized manner using pre-sorted queries.

4. Ecosystem Metaphor:

o Concept: The app functions as a living ecosystem where users, features, and systems interact
dynamically.

o Implementation:

 Users as Animals: Each user has unique needs, and the app adapts by personalizing
content recommendations and meeting preferences.

 Environment as Servers: Servers ensure all interactions are smooth, just as a healthy
ecosystem supports all living beings. Cloud infrastructure dynamically adjusts server
resources to maintain this balance.

 Ecological Balance (Maintenance): Regular updates and monitoring keep the system
stable, akin to maintaining biodiversity in an ecosystem.

Summary of Practical Applications

 Heuristics in Action:

o KISS keeps the UI and workflows simple, while DRY ensures reusable components across
features.

o Fail Fast prevents prolonged issues, and SoC organizes the app into manageable modules.

 Metaphors in Action:

o The Ocean metaphor illustrates how the app scales and monitors user interactions
dynamically.

o Modular Town emphasizes feature independence and interconnectedness.

o The Library metaphor captures how data is stored and retrieved efficiently.

o The Ecosystem metaphor highlights adaptive and stable system behavior.

These heuristics and metaphors collectively guide the design, development, and maintenance of the Ocean
App, ensuring a seamless user experience while enabling scalable, reliable growth.

Construction and Integration of the Ocean App


The construction and integration of the Ocean App involve designing, building, testing, and combining its
modules using technologies like HTML, CSS, PHP, and MySQL. This ensures the app's reliability, scalability, and
ease of maintenance.

1. Construction of the Ocean App

a. Modular Development

The Ocean App follows a modular design, where each module handles a specific functionality and is
constructed independently.

 Core Modules:

1. User Module:

 Built with PHP to handle user registration, login, and profile management.

 Stores user data in a MySQL database, using hashed passwords for security.

2. Content Module:

 Allows users to create, edit, and delete posts with HTML forms and PHP handling the
backend logic.

 Supports image uploads, stored on the server with file paths saved in the database.

3. Meeting Module:

 Enables scheduling and joining virtual meetings.

 Integrates scheduling logic using PHP, storing meeting details in the database.

 Advantages of Modular Development:

o Enables independent development and debugging of each module.

o Simplifies the addition of new features in the future.

b. Tools and Frameworks Used

1. Frontend Development:

o HTML & CSS: For creating responsive and user-friendly interfaces.

o Bootstrap (Optional): Used to ensure consistency in design and quick development of UI


components.

2. Backend Development:

o PHP: Handles business logic, form validation, and server-side rendering of dynamic content.

o Session Management: Utilizes PHP sessions to track user authentication and maintain state.

3. Database:

o MySQL: Used for storing structured data, such as user credentials, posts, and meeting
schedules.

o Tables are normalized to reduce redundancy and ensure data integrity.


c. Development Workflow

1. Planning and Prototyping:

o HTML wireframes are created to outline the layout of pages like the home screen, user
profiles, and post feeds.

o Designs are refined based on stakeholder feedback.

2. Coding Standards:

o PHP and SQL follow best practices, including avoiding SQL injection through prepared
statements.

o Code is modularized into reusable functions and classes.

3. Incremental Builds:

o Features are built incrementally:

 User registration and login.

 Post creation and display.

 Meeting scheduling and notification.

2. Integration of the Ocean App

a. Integration Strategy

Modules built with PHP and MySQL are integrated using server-side logic to ensure smooth communication
and data exchange.

1. Frontend-Backend Integration:

o HTML Forms: Collect user inputs (e.g., login credentials, post content) and submit them to
PHP scripts for processing.

o Dynamic Content Rendering: PHP retrieves data from the MySQL database and dynamically
generates HTML pages.

 Example: A user's dashboard displays their recent posts and meeting schedules,
fetched using SQL queries.

2. Database Integration:

o Tables are designed to handle relationships between users, posts, and meetings:

 Users Table: Stores credentials and profiles.

 Posts Table: Links posts to user IDs via foreign keys.

 Meetings Table: Records meeting schedules and attendees.

o Data is accessed and updated using SQL queries executed through PHP.

3. Error Handling:
o Input validations (e.g., required fields, proper data types) are performed on both the client
side (HTML/JavaScript) and server side (PHP).

o PHP error handling captures database errors, such as connection failures or invalid queries.

b. Testing During Integration

1. Manual Testing:

o Frontend forms are tested to ensure they correctly submit data to the backend.

o Database queries are tested directly for accuracy and efficiency.

2. Integration Testing:

o End-to-end workflows, such as creating a post and viewing it on the dashboard, are verified.

o Authentication mechanisms are tested to prevent unauthorized access.

3. Cross-Browser Testing:

o Ensures the app works consistently across major browsers (e.g., Chrome, Firefox, Edge).

c. Deployment and Scaling

1. Deployment Workflow:

o Code is deployed to a LAMP stack server (Linux, Apache, MySQL, PHP).

o A testing environment mirrors the production server for quality assurance.

2. Optimization for Scalability:

o Database indices improve query performance.

o Caching mechanisms (e.g., server-side caching for frequently accessed pages) reduce server
load.

3. Challenges and Solutions

1. Challenge: Ensuring secure data handling.

o Solution: Prepared statements in PHP prevent SQL injection. Passwords are hashed using
functions like password_hash().

2. Challenge: Managing multimedia content.

o Solution: Files are uploaded to the server, and their paths are stored in the database to
reduce database storage overhead.

3. Challenge: Keeping the app responsive.

o Solution: Efficient SQL queries and optimized PHP scripts minimize latency.

Conclusion

The Ocean App represents a thoughtfully constructed platform designed to connect local
volunteers, facilitate collaboration, and foster community engagement. By leveraging modern web
technologies such as HTML, CSS, PHP, and MySQL, the app ensures a seamless user experience,
scalability, and reliability. The proposed system outlines the app’s core features, including content
sharing, virtual meetings, and user interaction, which are all geared towards improving the
volunteer experience.The construction and integration processes have been carefully planned,
using a modular approach to ensure ease of maintenance and future scalability. Through the
application of best practices, such as ensuring high code readability, maintaining robust error
handling mechanisms, and performing regular testing, the app is poised to operate efficiently even
as it grows and adapts to new requirements.The maintenance strategy emphasizes proactive issue
resolution, adaptability to new technologies, and user-driven improvements. By regularly updating
the system, optimizing performance, and responding to user feedback, the app is prepared to
continue meeting the needs of its users in a dynamic and evolving environment.Overall, the Ocean
App stands as a solid example of modern software development, combining user-centric design,
scalable architecture, and an effective maintenance strategy to create a lasting, impactful solution
for local volunteer communities.

You might also like