1.3 Intended Audience and Reading Suggestions This report is written for the store owner and the store's facility managers canunderstand the sequence and manipulate the data about the pr
Introduction
Purpose
This document describes in detail the process and design of an management of cosmetics sales system This report includes operations such as system analysis, data security and integrity, and analysis of advantages and limitations when the system is put into use The main purpose of this report is to help the customer understand the features of the cosmetic selling system and the programmer will rely on this report for each analysis item to deploy and put into practice the design programming sales system design.
The purpose of this sales system is to expand the cosmetics sales market with new features and suit current needs such as: management of staffs, revenue, income,product maintenence, registering as a member by adminstrator, log in to accumulate member points to access the working section, Besides those features, the sales system also ensures that a large number of visitors find products quickly and receive information Full information and details of the product customers are looking for.
Document Conventions
This report is customary with Times New Roman font, font size 13 for regular text, 14 for level 1 subsections and 16 for chapter titles of each section A line spacing of 1.5 is required to ensure that the reader of this report can easily identify any typographical errors.
For system developers to easily identify important headings to avoid confusion, system process specifications should be grouped by sub-category 2 Diagrams should be centered and the size is 1 A4 page, the picture is clear When inserting pseudo-codes for an example of a feature, the system needs to copy and assign the entire code, avoid screen capture and merge into the report content.
Intended Audience and Reading Suggestions
This report is written for the store owner and the store's facility managers can understand the sequence and manipulate the data about the products the store is selling, manage the entire stock, the shipping process and store personnel For employees at the store, when reading this document, they can understand the sales process at the store
*This report is also read by the investors and system developers to take notes, fix bugs and develop the system during meetings.
Product Scope
This system allows store owners and store managers to manage the number of employees, the number of products, and the store's daily sales The store owner/manager will be granted a distinct admin account to be able to update the number of new products and update detailed product information.
For staffs who are store’s employees, they will log in to their accounts in the morning or evening shifts because the system is available by default so that after the employee's shifts, they can close the number of products sold and sales collected in that session Employees are granted operations with the default account during their working hours such as: receiving orders from customers, confirming customers of the store's members, printing invoices, updating quantities of products in the stock.
Project management plan
Product organization
Management software of cosmetic shop will replace the management of items manually through paper, in addition, it can also manage internal tasks such as managing employees and other products store project Management software will include a database which will be used to store data of goods in stock along with employee information, management software will manage products, employees are stored in the database.
The management software will have 3 interfaces: manager, employee, owner.After the item is prepared, it will be notified through the interface of the staff who will know if the order has been prepared or not The owner will have the right to modify the database such as adding new products or employees, adjusting the current quantity of goods After all, the manager will base on the bill that the staff had added and update the income for owner to view the revenue.
Product Functions
The store manager (shop manager) will be the person in charge of recording the number of products in stock and can add or remove products and update the amount of stock left on the shelf and sold out through the app to let Store's The owner can most easily track and the staff will also be able to see the status of the goods and update it on the website for customers to follow.
When customers use the website to place an order, the system will go through stock management to check the status of the goods or not to make an order for the customer After completing the order, the system will record it back to update the goods data into stock management as quickly as possible And the staff will then place orders for customers based on the website's data Printing bill will be handled for customer and delivery staff.
We manage the login authenication using email to provide OTP and password for some cases such as forget password, registration and login Nevertheless, adding product to cart and searching are option functions
Stakeholders for the system
In our product, we would like to have six main users who are responsible for distinct function or use case respectively:
No user User Characteristics Description
Has full access to the system to use the functions base on their roles.
For OTPs forget passwords ID link will link to product cart that users.
Manager product information, orders from customers.
We save the products which have been added.
Containing the orders’ information and products that are belonged to the order
Containing the information of the products which are included in that order.
Containing the information of the products which are belong to a specific shop
Operating Environment
The program is window-based, so it needs a user interface (UI) and a database, but it works with any operating system (including Windows 10, Windows 11 and Mac OS).
The app is made that can run on windows platforms with sales data storage functions that store customer and employee information as well as store revenue and staff will update it in the app to report back to the owner.
Architecture
MVC model
ASP.NET MVC (Model-View-Controller) is a web application development framework that is built on top of ASP.NET It is designed to provide developers with a structured approach to building web applications that separates the application logic into three main components: Model, View, and Controller.
The Model component in ASP.NET MVC represents the business logic and data of the application It encapsulates the data and provides the necessary operations to interact with the data The Model component in ASP.NET MVC is typically implemented using a data access technology, such as Entity Framework, or a custom data access layer that interacts with a database or other data sources.
The View component in ASP.NET MVC represents the user interface of the application It is responsible for rendering the data to the user and providing a way for the user to interact with the data Views are typically implemented using HTML, CSS, and JavaScript, and can be created using a variety of tools, including Visual Studio and other text editors.
The Controller component in ASP.NET MVC acts as an intermediary between the Model and the View It handles incoming requests from the user and decides which action to take based on the request The Controller is responsible for invoking the appropriate operations on the Model to retrieve or modify data, and then passing the data to the View to be rendered to the user.
Overall, the ASP.NET MVC model provides developers with a clean and maintainable way to build web applications by separating the application logic into distinct and easily testable components By following this pattern, developers can create scalable and modular web applications that are easy to maintain and extend over time.
Technology, software, and hardware used
- Software uses: Microsoft Visual Studio, Microsoft SQL Server Management Studio.
Rationale for your architectural style and model
The.NET Framework architecture is a collection of software components designed to aid in the creation of desktop, web, and mobile applications The.NETFramework is made up of libraries that developers can use to create their applications.Classes in the libraries handle data storage, error handling, and other tasks that are common to all types of applications The.NET Framework architecture is applicable to more than just desktop applications.
It also supports web applications, which are hosted on websites or used within a browser Because they interact with a browser and the Internet, web applications require more robust support than desktop applications Finally, the architecture of the.NET Framework serves as the foundation upon which all types of applications are built Aside from supporting various programming languages, the.NET Framework includes tools and libraries that assist developers in creating custom controls and third- party add-ons that improve user experiences Developers can ensure that their apps run smoothly on all devices and platforms by considering architecture when designing new programs.
Function description
Login: The user will enter their email/username and password on the website's login page If the credentials match the website's records, the user will be directed to their account dashboard or the page they were trying to access.
Register: The user will provide their email address and choose a password, and the website will automatically send a confirmation email to the email address provided The user will need to click on the confirmation link to complete the registration process and access their account.
Forgot password: If the user forgets their password, they can click on the "forgot password" link and enter their email address The website will send a one-time password (OTP) to the email address provided, and the user will need to enter the OTP on the website to reset their password.
Validate expired or wrong OTP: If the user enters an expired or wrong OTP, the website will display an error message asking the user to try again or request a new OTP.
Validate user's login: When a user logs in, the website will check the email/username and password entered against its database of user credentials If the login details are correct, the user will be granted access to their account.
View detail of products: The user can click on a product listing to view its details, such as description, price, images, and reviews.
Add product from various store to cart: The user can add products to their shopping cart by clicking on an "add to cart" button on the product detail page or search result page The cart will show the product name, price, quantity, and total cost.
Update quantity/Remove product in cart: The user can update the quantity of a product or remove it from their cart on the cart page The cart will automatically update the total cost based on the changes made.
Checkout section: The user can proceed to checkout by clicking on a "checkout" button on the cart page They will need to provide shipping and payment information, review their order details, and confirm the purchase.
Transaction history/Order statuses: The user can view their transaction history and order statuses on their account dashboard The website will display the order date, product details, total cost, and order status (e.g., processing, shipped, delivered).
Cancel orders: The user can cancel an order if it has not been shipped yet They will need to contact the website's customer support team or follow the cancellation process outlined on the website.
Searching filter: The user can search for products by entering keywords, filtering by category, brand, price range, and other criteria on the search page. The website will display the search results based on the user's query and filters.
Login: The staff member will enter their username/email and password on the website's login page If the credentials match the website's records, the staff member will be directed to their staff dashboard or the page they were trying to access.
CRUD products: CRUD stands for Create, Read, Update, and Delete Staff members can create new products, read the details of existing products, update the details of existing products (such as price, description, and images), and delete products that are no longer being sold This functionality would likely be accessed through a staff-only section of the website.
Order status confirmation: When a customer places an order, the staff member will receive a notification or an email with the order details The staff member can then confirm the order status by updating the order status in the website's database (e.g., processing, shipped, delivered) This information can be displayed to the customer on their account dashboard or in order confirmation emails The staff member may also need to update inventory levels or process payments based on the order status.
Designing
The system must be interactive and delays must be reduced as most as possible for user experience The webpage must be in single page application form so that avoid delaying to load another page In product page, the image should immediate appear less than 2 seconds to show the system smoothly operating Order from webpage must response to the staff below one minutes to decrease time for delivering.
Update stock must be quick to provide enough and fast product to customer including new items, sold out items or available items.
The software is completely environmentally friendly and does not cause any safety violations The font of text design to be clear when viewing and the responsive method will be apply to make easy to view, reducing harm to eyes.
Employee sensitive information and inventory should be protected from hacking, so proper and encrypted login authentication for the head chef and admin are required Information should be securely transmitted SQL server without any modifications in information to avoid order and billing disruptions
Admin or owner can add more items into product page and database, including employee’s information and customer detail or orders.
To avoid customer inconvenience, the system is up and running the majority of the time, and the server is not down for more than a few minutes.
The bill generated by the application must be accurate and the orders placed should exactly be the same which the user has selected
If the need arises in the future, the software can be modified to meet the new specifications.
The order detail and customer information will be transfer to manager to cover and store After that, they will be provided to shipper or staff to create a receipt.
Because of foundation software project, so it is easily repaired and updated when meet new requirements or fault occurrence appearances.
Easily execution on required operating system.
Give good result and correct payment besides legit product from brands.
Software must include checks to ensure that items not available in the menu cannot be selected and that all emails and phone numbers entered are correct.
The software interface must be simple to use It would not be complicated because managers and staffs have a point of view, so the interface should be simple.
1 Manager can just view the stock status besides customers and employees information, does not allow to fix customer, employee information and product details.(Exceptional for quantity)
2 Once the order is delivered or paid, update the quantity and the revenue.
3 Owner can view revenue and make decision for import new product He/She can perform CRUD to the inventory.
4 Employees can just view the quantity and product details and update the quantity after manager conduct updating operation.
Naming convention: variable (camel case and snake case) Naming should be clear and match the description, not using abbreviation Using noun to name the class and global variables and verb is used for naming the functions and methods.
A line of code should not be longer than 80 characters
A statement should nest up to 4 levels
A function should contain no more than 5 parameters
A function should not be more than 30 lines
A class should not exceed 500 lines.
Each function should only do one thing, if it performs two different purposes, the function name should clearly show.
If a function has multiple nested levels, each level should descend the line.
Degree code snippets should be in the same column as each other, the line down the row should start at the same level as the line above.
Down the row before the operators (e.g , , -, *, ?, ).
Limit the use of comments to explain code or annotate obvious facts.
No comments when closing tags/brackets.
Remove unused code, don't comment out that code.
Comment clarifies the meaning of the code (if the logic is complicated).
We are using git and github to store source code and manage it, easily communicate and sync with teammate throughout the project.
Regulations of the Faculty of Information Technology:
- Plagiarism is the use of other people’s words or idea as their own in academic activities in particular and in creative activities in general At Ton Duc Thang university, the following acts are considered plagiarism:
• Copying 02 sentences verbatim without quoting the correct source;
• Copying verbatim 03 non – consecutive without quoting the correct source;
• Rephrase (rephrase) or translate (translate) the whole idea of someone else without citing the correct source;
• Using more than 30% of the content of a final report written by yourself to submit to 2 different classes (same semester or different semester) without the agree of teacher;
• Copy part or all of someone else’s work
- This is an individual midterm easy Any case of plagiarism will get 0.