Lab Requirements For SWR302
Lab Requirements For SWR302
1|Page
RECORD OF CHANGES
2|Page
The content of your assignment has 2 basic parts:
You must propose the structure of your assignment document by combine the structure of
the template of Vision and Scope Template in Chapter 5 and the Structure of the
Software Requirement Specification template in Chapter 10.
Part 1: Include the content of Vision and Scope (see template of Vision and Scope
Template in Chapter 5)
Part 2: Software Architecture design
3|Page
One feature = collection of related use case.
One use case NORMALLY = one screen. You need to draw the mockup
screen of each use case.
Draw the screen flow. See sample here
4|Page
b. Identify Non-functional requirements. Should write non-functional in
numbers and short statements.
See sample
5|Page
List all Hardware (Version number)
List all Operating systems (Version number)
List all Protocol (Version number)
Hardware Requirements
Supported Devices: The system should be accessible on:
o Desktops and Laptops (Windows, macOS, Linux)
o Tablets (iOS, Android)
o Smartphones (iOS, Android)
2. Operating Systems
The website should support a range of modern operating systems:
Windows: Version 10 or later
macOS: Version 11.0 (Big Sur) or later
Linux: Latest distributions such as Ubuntu 22.04, Fedora 36, etc.
Android: Version 10 or later
iOS: Version 13 or later
3. Web Browsers
The website must be compatible with modern web browsers:
Google Chrome: Latest version
Mozilla Firefox: Latest version
Microsoft Edge: Latest version
Cốc Cốc: Latest version
Safari: Latest version (for iOS/macOS)
4. Software & Technologies
The following software will be used in developing and managing the website:
4.1. Front-End Development
ReactJS: A JavaScript library for building user interfaces.
HTML5: For structuring web pages.
CSS3: For styling web content.
4.2. Back-End Development
Node.js: For running JavaScript on the server-side.
Express.js: For building RESTful APIs and handling server-side logic.
5. Protocols
The website will utilize modern web protocols to ensure security and
performance:
HTTPS: For secure communication between the browser and server.
HTTP/2 or HTTP/3: For better performance.
RESTful API: To enable communication between the front-end and back-end.
6|Page
TCP/IP: Underlying network protocol used by all internet connections.
6. Internet Connection
A stable internet connection is required for users to browse the site and make
purchases.
Identify the name of your software system. Your software system can be devide
into how many sub-systems? Identify all the name of sub-systems.
Present the name of the system or all sub-system on the context diagram.
List all the database name (version number)
Describe how your software work, how the data flow between the components
of the systems.
The system deploy on the local server or the cloud server? Draw the deployment
diagram.
List all Software Framework (Java JDK, IDE, Spring MVC, Spring Boots, Bootstapts,
Agular….) The version of the Framework.
1. System Name:
Let's assume your system is named "Clothing E-Commerce Platform". You can
refine the name as needed.
2. Sub-systems:
Your system can be divided into several key sub-systems based on the database
tables and their relationships:
Product Management System: Handles products, categories, collections, and
product details.
Order Management System: Manages orders, order details, and payment
information.
User Management System: Deals with users, their feedback, and their wishlists.
Inventory and Stock Management: Focused on product stock, availability, and
status.
Content Management System: Manages banners, images, and collections
displayed on the website.
Feedback System: Manages user feedback for products.
Publishing and Content System: Deals with publishers and product content
creation.
3. Context Diagram:
7|Page
In a context diagram, these sub-systems could be depicted as individual
components interacting with each other via shared data (e.g., users, products,
orders). Each sub-system could communicate with a central database or API
layer.
4. Database Names:
To list the database names and versions, we assume you're using a relational
database such as MySQL or PostgreSQL. Let’s assume you're using:
MySQL v8.0 (or PostgreSQL v14.0) as the database system. Each table represents
a component of the system.
5. Data Flow Between Components:
The system appears to follow a modular approach where the different
components (sub-systems) share data through common entities like:
Product and Image Tables: The product sub-system references the image sub-
system to store multiple images for products.
Order and Order Detail Tables: When a user places an order, the data flows from
the user management system to the order management system. The order
details reference the product and user.
Collection and Product Collection Tables: Collections of products are managed
by a content management system and are linked to products in the product
management system.
Feedback Table: User feedback about specific products is stored here, flowing
from the user sub-system to the feedback sub-system.
6. Deployment on Local or Cloud Server:
The system could be deployed on either local servers or cloud servers (AWS,
Azure, or Digital Ocean).
If deployed on the cloud, the server hosts the back-end services (Node.js and
Express.js, assuming these are used). The front-end is deployed on a CDN (for
example, using Netlify or Vercel).
7. Deployment Diagram:
The deployment diagram could have two main parts:
1. Web Server: Hosts the application (front-end & back-end). Could be deployed on
AWS, Azure, or other cloud services.
2. Database Server: Stores all data (MySQL/PostgreSQL) and is either hosted in the
cloud or on a local machine.
The front-end and back-end interact with each other via RESTful APIs.
8. Software Frameworks:
For the development of your web platform, the following frameworks and tools
might be used:
8|Page
Java JDK: Version 11 (or newer) for any Java-based processing.
Node.js: v18+ (for back-end API handling).
Express.js: v4.18 (for server-side routing and APIs).
React.js: v18+ (for front-end development).
Bootstrap: v5.3 (for responsive web design).
MySQL: v8.0 (as the database).
IDE: Visual Studio Code or IntelliJ IDEA (latest versions).
Table Description
No Table Description
9|Page
01 product Stores details about each product being sold on the platform.
02 order Manages customer orders.
03 order_detail Stores detailed information about each item in an order.
04 user Contains information about users who have accounts on the
platform.
05 feedback Stores user feedback for products.
06 image Manages images associated with products.
07 collection Manages product collections
08 product_collectio Links products to specific collections.
n
09 product_category Manages categories for products.
10 wishlist Manages users' wishlists of products.
11 publisher Stores information about product publishers
12 baner Stores information about banners displayed on the website.
product
10 | P a g e
Target gender for the product
16 gender VARCHAR Optional
(e.g., men, women).
17 rating DECIMAL Optional Average rating of the product.
image
collection
product_collection
No Field Type Constraint Description
11 | P a g e
02 collection_id BIGINT Foreign Key ID of the associated collection.
feedback
03 created_at DATETIME Not Null Date and time the feedback was
created.
04 state VARCHAR Optional Status of the feedback (e.g.,
approved, pending).
05 product_id BIGINT Foreign Key ID of the product being reviewed.
product_category
publisher
12 | P a g e
wishlist
01 id
02 product_id
03 user_id
order_detail
01
02
03
04
order
01
02
03
04
user
13 | P a g e
No Field Type Constraint Description
01
02
03
04
banner
01
02
03
04
14 | P a g e