SOFTWARE ENGINEERING LAB FILE (Sample)
SOFTWARE ENGINEERING LAB FILE (Sample)
Overall Description
Product Perspective
This is a standalone web-based system intended for secure authentication and tracking using
mail security pins. The frontend communicates with the backend API to process and validate
user actions.
Product Features
1. User Features:
o Registration and login.
o Request and validate mail security pins.
o View login history.
2. Admin Features:
o Monitor user activity logs.
o Reset user credentials.
3. System Features:
o Auto-expiry of mail pins.
o Secure hashing and storage of sensitive data.
User Characteristics
• End Users: General users with basic computer skills.
• Administrators: Experienced users managing system configurations.
Constraints
• Internet connection required for pin generation and validation.
• Compatibility with modern browsers (Chrome, Firefox, Edge).
Assumptions and Dependencies
• The mail server is assumed to be available for delivering pins.
• Users provide valid email addresses during registration.
Functional Requirement
User Registration
• Users must provide email, password, and name.
• Data validation ensures only valid email addresses and secure passwords are allowed.
Login
• Users authenticate using email and password.
• Failed login attempts are logged with timestamps.
Generate Mail Security Pin
• Users request a security pin through the app.
• The pin is sent to the registered email and stored in the database with an expiry
timestamp.
Validate Security Pin
• Users enter the pin for validation.
• If the pin matches and is not expired, access is granted.
• Failed attempts are logged.
Admin Monitoring
• Admin can view user activity logs, including login attempts and pin validation events.
Non-Functional Requirements
Performance Requirements
• The system must handle 50 concurrent users.
• Pin generation and validation must occur within 2 seconds.
Security Requirements
• All sensitive data (e.g., passwords, pins) must be hashed before storage.
• API communication must occur over HTTPS.
Usability Requirements
• The UI must be responsive and user-friendly, supporting both desktop and mobile
devices.
Availability
• The system should have 99.9% uptime.
System Design
Architecture
• Frontend: React-based single-page application.
• Backend: Node.js API with Express.
• Database: MySQL relational database for user and pin management.
Data Flow
• Users interact with the React frontend.
• Requests are sent to the Node.js backend for processing.
• Data is fetched or updated in the MySQL database.
Appendix
• References:
o React documentation: https://reactjs.org/
o Node.js documentation: https://nodejs.org/
Actors
1. User:
oRegisters and logs in.
o Requests a mail security pin.
o Validates the pin for secure access.
o Views login history.
2. Admin:
o Monitors user activities and login attempts.
o Manages user accounts (e.g., resetting credentials, blocking accounts).
User Registration
• Test Case 1: Successful Registration
o Description: Verify that a user can register with valid credentials.
o Precondition: User is on the registration page.
o Input: Valid email, strong password, and name.
o Expected Result: Account is created successfully, and the user sees a
confirmation message.
• Test Case 2: Registration with Duplicate Email
o Description: Verify that the system prevents registration with an already
registered email.
o Input: Existing email, strong password, and name.
o Expected Result: Registration fails, and an error message is displayed.
• Test Case 3: Invalid Email Format
o Description: Verify that the system rejects invalid email formats during
registration.
o Input: Invalid email (e.g., "invalidemail").
o Expected Result: Registration fails, and a validation error message is
displayed.
User Login
• Test Case 1: Successful Login
o Description: Verify that a user can log in with valid credentials.
o Input: Registered email and correct password.
o Expected Result: User is redirected to the dashboard.
• Test Case 2: Login with Invalid Password
o Description: Verify that the system prevents login with an incorrect password.
o Input: Registered email and invalid password.
o Expected Result: Login fails, and an error message is displayed.
• Test Case 3: Login with Unregistered Email
o Description: Verify that the system prevents login with an unregistered email.
o Input: Unregistered email and any password.
o Expected Result: Login fails, and an error message is displayed
Admin Monitoring
• Test Case 1: View User Activity Logs
o Description: Verify that the admin can view all user activity logs.
o Precondition: Admin is logged in.
o Input: Request to view activity logs.
o Expected Result: Activity logs are retrieved and displayed.
• Test Case 2: Reset User Credentials
o Description: Verify that the admin can reset a user’s password.
o Input: User ID and new password.
o Expected Result: Password is reset successfully, and the user is notified.
1. User :Represents users common to both Facebook and the Mail Security Pin System.
• Attributes:
o User_Id (PK)
o name
o email
o password
o phoneNumber
o profilePicture
o friendsList
o registrationDate
• Methods:
o register()
o login()
o updateProfile()
o sendFriendRequest()
o acceptFriendRequest()
o createPost()
o likePost()
2. MailSecurity : Manages the security pin functionality for Facebook user accounts.
• Attributes:
o securityPinId (PK)
o userId (FK)
o securityPin
o pinExpiry
o status (Active/Inactive)
• Methods:
o generateSecurityPin()
o validateSecurityPin()
o deactivatePin()
2. User → Post:
o A user can create multiple posts.
3. Post → Comment:
o A post can have multiple comments.
4. User → Comment:
o A user can create multiple comments.
5. User → Message:
o A user can send/receive multiple messages.
6. User → Notification:
o A user can receive multiple notifications.
7. User → LoginHistory:
o A user can have multiple login attempts.
8. Admin → User:
o An admin can manage multiple users.
9. Admin → LoginHistory:
o An admin can monitor multiple login attempts.
Activity Diagram
ER – DIAGRAM
DFD DIAGRAM
The Data Flow Diagram (DFD) for my project (MY BOOK) visually represents how
data flows through the system, including processes, data stores, and interactions with
external entities.