Bhaskar Case Tools Lab
Bhaskar Case Tools Lab
AIM: To write the problem statement for the online course reservation system
PROBLEM STATEMENT: Online Course Reservation System
BACKGROUND: Educational institutions, online learning platforms, and training centers face
significant challenges in efficiently managing the enrollment process for their courses. In
many cases, the course reservation process is manual, prone to errors, and lacks real-time
updates on availability and schedules. These inefficiencies can lead to double bookings,
confusion, missed deadlines, and administrative overhead, all of which can negatively impact
both students and administrators.
2: The existing process for course registration and reservation in many institutions is
fragmented, time-consuming, and error-prone. Students often struggle to find updated
course information, experience delays in securing their spots, and are sometimes unable to
register due to overbooked or unavailable classes. Moreover, administrative staff often face
difficulties in managing course availability, tracking enrollments, processing payments, and
communicating important updates to students in a timely manner.
• Integrate secure payment gateways to enable students to pay for courses online,
receive confirmation, and manage financial transactions.
• Generate reports and analytics for administrators to assess course popularity, student
engagement, and financial transactions.
By addressing these issues, the Online Course Reservation System will improve the overall
efficiency of course enrollment, reduce administrative errors, enhance communication, and
provide a seamless experience for students and staff alike.
SCOPE:
• The system will support the browsing of course catalogs, user registration and login,
course reservations, secure online payments, and notification management.
• An admin panel will allow course management, enrollment tracking, and data
analytics.
• The system will be scalable to handle increasing user traffic and course offerings.
WEEK-2
AIM: To write the software requirement specification format for the online course reservation
system
1. Introduction
1.1 Purpose
This Software Requirement Specification (SRS) document provides a detailed description of the
requirements for the Online Course Reservation System (OCRS). The purpose of this document
is to outline the functional and non-functional requirements of the system, and to serve as a
guideline for the design, development, and testing of the software. The document is intended
for the development team, testers, project managers, and stakeholders involved in the project.
1.2 Scope
The Online Course Reservation System (OCRS) is a web-based platform that enables users
(students) to browse, reserve, and enroll in available courses offered by educational institutions
or training providers. The system also supports administrators in managing course listings,
processing reservations, tracking payments, and generating reports.
1.3 Definitions, Acronyms, and Abbreviations
• OCRS: Online Course Reservation System
• Admin: Administrator user who manages courses, users, and overall system settings
• Student: User who registers and reserves courses through the system
• API: Application Programming Interface
• UI: User Interface
• Payment Gateway: A service that authorizes and processes payments online
• SRS: Software Requirements Specification
1.4 References
• [Insert any relevant documents, such as design documents, API specifications, or legal
references.]
1.5 Overview
This document provides a comprehensive outline of the system’s requirements. It describes the
features, interfaces, and system attributes that must be addressed in the course reservation
system. Additionally, the document covers both functional and non-functional requirements
necessary for the development and successful deployment of the system.
2. Overall Description
2.1 Product Perspective
The OCRS will be a web-based application accessed by students, administrators, and course
providers via modern browsers. The system will be integrated with a secure payment gateway
for online payments and a notification system to send updates and alerts to students.
• The system assumes that users will have internet access and a modern browser to interact
with the system.
3. System Features
3.1 User Registration and Login
• Description: Students must create an account with a valid email and password. They will
also have the option to update their profile information.
• Functional Requirements:
• Users must be able to register with a valid email and password.
• The system should verify the email address via a confirmation link.
• Users should be able to reset their password via email if forgotten.
3.2 Course Catalog and Search
• Description: Students can browse courses, search by keyword, filter by category, and
view detailed course descriptions.
• Functional Requirements:
• The system must display available courses with details such as course name,
description, schedule, and seat availability.
• Description: The system will send notifications to students regarding course updates,
payment confirmations, and deadlines.
• Functional Requirements:
• Students should receive email/SMS alerts for course reservations, cancellations,
or updates.
• Notifications should be sent for payment status updates and deadlines.
3.
5. System Attributes
5.1 Performance Requirements
• The system should support at least 1,000 concurrent users.
• Response times should be under 3 seconds for course browsing and reservation.
WEEK-3
AIM: Write the configuration of online course reservation system.
1. System Overview
The system can be divided into three primary components:
• Frontend: Interface for students and administrators (website/mobile app).
2. Core Functionalities
A. Student Functions
• Registration/Login:
• Student registration (email, password, or third-party login such as
Google/Facebook).
• Course Search & Browsing:
• Course catalog (filterable by category, date, instructor, price, etc.).
• Course Reservation:
• Reservation Management:
• Download certificates (if applicable).
• Ratings and Reviews:
• Ability to rate courses and leave feedback after course completion.
C. Admin Functions
• User Management:
• Create, update, or remove student/instructor profiles.
• Monitor and manage user activities (reservations, cancellations, etc.).
• Course Management:
• Manage platform settings (time zones, payment settings, email templates, etc.).
• Set up promotional discounts, coupon codes, or bulk registration options.
• User access control (role-based permissions for admin, instructor, etc.).
3. System Architecture
A. Frontend (Client-Side):
• Technologies: HTML5, CSS3, JavaScript (React, Angular, or Vue.js for interactivity).
• Responsive Design: Ensure compatibility across desktop, tablet, and mobile devices.
• Components:
• Course Catalog: Search, filter, and sort functionality.
• Course Details Page: Information about the course, instructor, schedule, and
enrollment form.
• User Dashboard: For viewing enrolled courses, updating profiles, and managing
reservations.
• Payment Interface: Integration with payment gateways like Stripe, PayPal.
B. Backend (Server-Side):
• Technologies: Node.js, Django, Ruby on Rails, or Laravel.
• API Layer: RESTful API or GraphQL for communication between frontend and backend.
• Email: Confirmation, reminders, and cancellation notifications sent via services like
SendGrid or Amazon SES.
• SMS: Send reminders or important updates via services like Twilio.
• Push Notifications: For mobile apps (via Firebase or custom solutions).
F. Security Considerations:
• SSL Encryption: For securing data transmission between users and the platform.
• Auto-Scaling: Auto-scaling groups (via AWS, GCP, or Azure) to handle varying levels of
traffic without compromising system performance.
WEEK-4
AIM: Study and usage of design phase case tool
DESIGN PHASE CASE TOOL:
How to install STAR UML on windows 10, you can use the extension manager and enter the
GitHub URL:
• Open the Extension Manager
• Click install from URL
• Enter the GitHub URL
• Click Install
• Star UML is a software engineering tool that uses the Unified modelling language,
Systems modelling language, and other modelling notations to model system. It
Also has a command Line Interface (CLI) that can be used to generate artifacts like
source codes, documents, and diagram images.
Star UML can be used for the free in evolution mode for 30 days, but watermarks will appear in
the exported diagram images. After the evaluation period, a license is required the continue
using the software.
Star UML offers object oriented modelling capabilities. It supports most of the diagram
Types of specified in UML 2.0
• Class diagrams
• Composite structure diagram
• Component diagrams
• Object diagrams
• Package diagrams
• State diagrams
• Information flow diagrams
• Interaction over view diagrams
• Profile diagrams
Step-6: If you check the C Drive you can see the star UML folder in the program files location
Step-7: If you want to try and create a class in star UML
Step-8: Run the command sudo apt-get install-f in the CLI of the system which installs the
package
Step-9: Click on the help button and you will see the documentation option.
Step-10: The tools in the star UML helps to know the requirements in the system and apply
design pattern to proper analysis can done to understand modify the diagrams. These tools are
open source highly requirements icon tools purchased from the from the software vendors of
different applications.
WEEK-5
AIM: Performing the design by using online course reservation system.
1. High-Level Design Overview
The Online Course Reservation System should support the following functionalities:
• Instructor
• Admin
• User management (students/instructors)
• Manage courses and reservations
• View transaction reports
The Class Diagram represents the static structure of the system, showing the main classes, their
attributes, methods, and relationships between them. It is essential to define the core data
entities.
Example:
plaintext
Copy code
+-----------------+ +--------------------+ +-----------------+
| User |<---->| Student |<----->| Reservation |
| - role |
+-----------------+
C. Sequence Diagram
The Sequence Diagram models the dynamic behavior of the system, showing the sequence of
messages between objects during an interaction. It’s useful for understanding how the system
components interact when a student reserves a course.
Sequence Diagram:
plaintext
Copy code
Student System Payment Gateway
| | |
|---> Search --->| |
| |<----- Return Data---|
| | |
|---> Reserve Course --->| |
plaintext
Copy code
+-----------------------+
| Start |
+-----------------------+
|
v
+-----------------------+
| Login |
+-----------------------+
|
v
+-----------------------+
| Search for Courses |
+-----------------------+
|
v
+-----------------------+
| Select Course |
+-----------------------+
|
v
+-----------------------+ No
| Make Payment |<------|
+-----------------------+ |
| |
Yes | |
v |
+-----------------------+ |
| Confirm Reservation |------>|
+-----------------------+
|
v
+-----------------------+
| End |
+-----------------------+
WEEK-6
AIM: Develop online course reservation system for unit testing and integration testing.
Unit Test Cases
1. UserService
The UserService handles user registration, ensuring that users cannot register with the same
email twice.
1. Unit Testing Diagrams
Unit tests are typically isolated and test one specific functionality or component of the system.
The diagrams for unit testing often illustrate the behavior of a single component or service in
isolation (e.g., UserService, CourseService, etc.).
A class diagram shows the components involved in unit testing. Each class or service will be
tested in isolation.
scss
Copy code
+---------------------+ +-------------------+
| UserService | | CourseService |
+---------------------+ +-------------------+
| +register_user() | | +create_course() |
| +get_user_by_email()| | +reserve_course() |
+---------------------+ +-------------------+
|
v
+-------------------+
| ReservationService|
+-------------------+
| +create_reservation() |
+-------------------+
|
2. Integration Testing Diagrams
In integration testing, the goal is to test how multiple components or services work together.
These tests check the end-to-end flow to ensure that integrated systems function correctly
when combined.
This sequence diagram demonstrates how several components (UserService, CourseService,
ReservationService, and PaymentService) work together to perform a full course reservation.
User UserService CourseService ReservationService
PaymentService
| | | | |
| ---> register_user() | | | |
| | | | |
| | ---> check if user exists | | |
| | | | |
| | <--- (no existing user) | | |
| | | | ---> process_payment() |
| | | | |
| | | | <--- (Payment Processed) |
| <--- (Reservation Confirmed) |
WEEK-7
AIM: Develop test cases for various white box and black box on online course reservation
system
• Test Case 6: Verify that the system can filter courses based on category.
• Input: Select a specific category filter (e.g., "Programming").
• Expected Output: Only courses in the "Programming" category are displayed.
• Test Case 7: Verify that the system can filter courses by price range.
• Input: Select a price range filter (e.g., "$50-$100").
• Expected Output: Only courses within the selected price range are displayed.
• Test Case 8: Verify that the course search results display the correct information (e.g.,
course title, instructor, price).
• Input: Search for a course (e.g., "Java Programming").
• Expected Output: The results should include courses that match the search
query.
3. Course Enrollment
• Test Case 9: Verify that a user can successfully enroll in a course with available seats.
4. Payment Process
• Test Case 12: Verify that the user is redirected to the payment page after course
enrollment.
• Input: After enrolling in a paid course, the user should be redirected to the
payment gateway.
• Expected Output: Payment page is displayed with course details and payment
options.
• Test Case 13: Verify that the system accepts valid credit card details and processes
payment.
• Input: Valid credit card details.
• Expected Output: Payment is successfully processed, and a confirmation
message is displayed.
• Test Case 14: Verify that the system rejects invalid credit card details.
• Input: Invalid credit card details (e.g., expired card, incorrect CVV).
• Expected Output: An error message indicating invalid card details.
• Test Case 1: Verify that the system correctly checks for duplicate email during
registration.
• Input: Email already registered in the system.
• Expected Output: The system should trigger the condition that checks for
duplicate emails and return a message like "Email already in use."
2. Search Functionality Logic
• Test Case 2: Test the course search algorithm with a combination of multiple filter
conditions.
• Input: Filter for category "Programming" and price range "$50-$100."
• Expected Output: The search algorithm should process both conditions correctly
and return only courses in the "Programming" category within the specified price
range.
3. Enrollment Logic
• Test Case 3: Verify the code path that handles enrollment when a course reaches its
seat limit.
• Test Case 5: Verify that the system handles the success response from the payment
gateway correctly.
• Expected Output: The system should gracefully handle the database error,
showing a user-friendly message such as "Unable to retrieve course data at the
moment."
6. Access Control
• Test Case 9: Verify that a user cannot access admin functionalities if not an admin.
• Input: Logged in as a regular user and try to access admin functions (e.g.,
"Manage Courses").
• Expected Output: The system should prevent access and return an access denied
message.
• Test Case 10: Verify that an admin user can access admin functionalities.
• Input: Logged in as an admin user and try to access "Manage Courses."
• Expected Output: Admin is granted access to manage courses.