Background information
Our scenario will work on a sales website that specializes in selling Lego items Here we will update and evaluate the latest products and have special offers for potential customers The website will continuously update and cover the product in the fastest way With professional team and young staff, we want to bring great experience to customers Currently our website is accepting requests to make custom products and everyone can guarantee the genuineness of Lego items in our store.
Project aim and objectives
Customer: To serve the needs of a customer, a person uses the website to view and Find out about the manufacturer's products, learn about details, contact manufacturer or want to buy models through the website these different goals users can only view the information on the website and leave feedback after implementation buy, lean on, cling to; he or she cannot change the information of the product or the website
Admin: The object that accesses the website to manage the information and data it contains This user can manage and modify product information (products, customer feedback)
Type of SDLC
SDCL model applied in project
We chose the waterfall model for the Mono sales website design project
Requirements: Our team analyze the requirements and the specification document to determine the requirements related to the functional and non-functional aspects of the Mono sales project This stage needs the customer's activeness and ends with a document called "Software requirement specification" or SRS (software requirement specification) The Requirement Specification document is the foundation for further activities until the end of the project
- Design: After having the functions and non-functions in the first step, we will shape the software system to meet the requirements of the customer required in the SRS document (software requirement specification)
- Implementation: We program everything in the system analysis and design phase
- Verification: The testing step after the code is completed, we will test the entire project system with the participation of the customer to see if the customer accepts it or not
- Maintenance: The final step of the project, which is installation and maintenance when the customer has accepted, this phase will only let the customer use the software and fix software errors if any or change new requirements or add new requirements reduce system functionality
This is a simple model, easy to apply, clear step-by-step process
Ease of management and maintenance by a linear and fixed step-by-step approach The input and output criteria are clearly defined so it is easy to control the quality Works effectively on small projects, with clear requirements There are many documents provided to customers
Not the ideal model for large and long-term projects
Not effective for projects facing unclear requirements from the start
Difficulty adapting to change including requirements, plans, project scope Intuitiveness is low and value is slow to deliver when the end-of-life user sees and uses the product
MVC is an architectural pattern which means it rules the whole architecture of the applications Even though often it is known as design pattern, but we may be wrong if we refer it only as a design pattern because design patterns are used to solve a specific technical problem, whereas architecture pattern is used for solving architectural problems, so it affects the entire architecture of our application It has three main components:
-Controller and each of them has specific responsibilities
The main reasons why MVC is used are: First, it doesn't allow us to repeat ourselves and second, it
P a g e | 7 helps to create a solid structure of our web applications
It is known as the lowest level which means it is responsible for maintaining data Handle data logically so it basically deals with data The model is connected to the database so anything you do with data Adding or retrieving data is done in the model component It responds to the controller requests because the controller never talks to the database by itself The model talks to the database back and forth and then it gives the needed data to the controller Note: the model never communicated with the view directly
Data representation is done by the view component It generates UI or user interface for the user So, at web applications when you think of the view component just think the Html/CSS part Views are created by the data, which is collected by the model component, but these data aren’t taken directly but through the controller, so the view only speaks to the controller
It’s known as the main man because the controller is the component that enables the interconnection between the views and the model, so it acts as an intermediary The controller doesn’t have to worry about handling data logic, it just tells the model what to do After receiving data from the model, it processes it and then it takes all that information it sends it to the view and explains how to represent to the user Note: Views and models cannot talk directly
- MVC architecture will separate the user interface from business logic and business logic
- Different components of the application in MVC can be independently deployed and maintained
- This architecture helps to test components independently
-Not suitable for small applications
-The inefficiency of data access in view
So MVC is not that easy to understand, it’s hard, but not impossible to learn and every developer needs to keep it in mind when developing an application Just keep in mind that MVC is an architecture that divides your software into smaller components The model deals with data and the logic of your system The view only displays data, and the controller maintains the connection between the model and the view This ‘division’ enables readability and modularity as well it easier the testing part
What is PHP Framework?
PHP Framework is very necessary for PHP Developer to do web programming Instead of each time developing an application, you must rebuild functions that have been used many times before, with these frameworks, this "downtime" is minimized
Why use a PHP Framework?
PHP Framework provides a basic structure to improve the web application development process It can be said that PHP Frameworks are popular because they help speed up the development process Above all, the PHP Framework meets the performance needs of businesses thanks to the responsiveness of websites and applications built with the PHP Framework.
Common PHP Frameworks
PHP Framework is used in project
The PHP used in the website design project is the Laravel Framework Because Laravel helps you speed up the application development process, save you time, increase the stability of the application Reduce the number of times you have to rewrite programmer code
The first reason is that Laravel is extremely easy to use for beginners, even if you only know a little about PHP, you can still develop a website with 5 pages in a few hours
• There is open source code
The free, open source Laravel framework allows you to build large and complex web applications quickly and easily
All you need to do here is install PHP, plus a text editor to get started
In case you are stuck with difficult bugs, but someone has gone through and guided you, nothing better
Laravel has an extremely large support library system and is more powerful than other frameworks
If you report a bug or a security breach in the Framework, the community response will be very quick
The MVC architecture and OOP object-oriented programming are still retained in the Laravel Framework, providing better documentation, and increased performance
• Built on top of the most efficient frameworks
Because it was born late, Laravel inherits the advantages and strengths of other Frameworks, when there is a strong route section A video example is Laravel using some of the best components of Symfony
Database migration is one of the key features of Laravel It allows you to maintain the application database structure without necessarily recreating it
Database migration also allows you to write PHP code to control the Database, instead of using SQL
It also allows you to roll back the most recent changes in the database
Your application will be safe using the Laravel Framework Laravel's ORM technique uses PDO, anti- insertion SOL
Additionally, Laravel's crsf protection helps prevent cross-site request forgery It's a syntax that automatically escapes any HTML being passed through view parameters, to prevent cross scripting on the web page
What you need to do here is use the appropriate components of the framework
MySQL is an open source database management system (referred to as RDBMS for short) that works under the client-server model With RDBMS stands for Relational Database Management System MySQL is integrated apache, PHP MySQL manages data through databases Each database can have many relational tables containing data MySQL also has the same access and similar code to the SQL language MySQL was released in the 90s
- Ease of use: MySQL is a high-speed, stable, easy-to-use, and cross-operating database that provides a large set of very powerful utility functions
- High security: MySQL is very suitable for applications that access databases on the Internet when it has many security features even at high level
- Multi-feature: MySQL supports many of the SQL functions expected from a relational database management system both directly and directly
- Scalable and powerful: MySQL can handle a lot of data and moreover it can be extended if needed
- Fast: The introduction of several standards allows MySQL to work very efficiently and costeffectively, thus increasing execution speed
- Limitations: By design, MySQL is not intended to do it all and it comes with limitations on the functionality an application might need
- Reliability: The way specific functions are handled with MySQL (e.g., references, transactions, audits, etc.) makes it less reliable than some DBMSs other relationships
- Limited capacity: If your number of records is growing, it is quite difficult to assess your data, then we will have to apply many measures to speed up data retrieval such as load sharing this database to many servers, or create a MySQL cache
Techniques
Tools
• Sign in and sign up with store accounts like Facebook, Google, or create a new account for yourself
• Users can search tool information such as name, price, detailed information about the products of our Lego store
• Users can give reviews and ratings on the quality and services they have used
• Users can view and buy some promotional accessories included with the product
• User can add and buy products to cart
• The admin account can do things like add products, remove products, update products
• Web statistics and the manager's download account can do things like update more products
• The admin account can do things like add manufacturers, remove manufacturers, update manufacturers
• Administrator account can register, log in, log out, edit information
• The admin account can do things like view customer information, delete customers
- The speed, capacity, and reliability of the system: Any interaction between the user and the system should not exceed 3 seconds
- The system downloads new status parameters within 6 minutes of a change
- The system should be available for use 24 hours per day, 365 days per year
- System can run on all device as Phone, Web,
- Users can use the following functions:
- User has 2 main functions and each function has many sub functions - Manage Accounts:
Admin has 4 main functions and each of its functions has 3 to 4 sub functions:
• Delete Customer View Infomation Customer - Manage Producer: •
Use Case Name: Login ID: UC-1 Priority : Medium Actor: Admin and Customer
Description: Admin and customer must be logged in properly to be able to access the site Preconditions: Account must have been created before
Enter the correct account and password
Click and login button to enter the website
After logging in we will go to the main page of the web
When we log in with the wrong account or password, the system will warn you with the wrong password or account
Descriptions: After the account has entered the main page
Must login to admin and customer account
Click on the product button to see product pictures and prices
Must login to admin and customer account
Customers do not have the right to delete products or change prices, only admins with more advanced functions can delete and change prices
Description :Only admin can add products
Must login to admin account
Click on the add product button to add more products
Must login to admin account
User can’t add product that just has admin can add product
You must type in the correct product keyword or approximate it to appear
Account of Admin or Customer created before that
Click on the search place and start typing the keyword after typing we enter
Account of Admin or Customer created before that
If you type the wrong keyword or intentionally type the wrong keyword, it will not show the product you want
As an admin, I want to go through all the categories (Name, Image) so I can see what products the manufacturer currently has
As an administrator, I want to delete the admin information because the admin has affected the store
As an administrator, I want to delete products that are out of stock so that I can remove unnecessary, backlog and inappropriate products.
As an administrator, I want to see customer information (name, phone number, address ) so that I
As an administrator, I want to delete customer information due to a violation of the store's policy or long time no use of the store's services
As an administrator, I want to delete categories (Name, photo) so I can delete those that are out of
As an administrator, I would like to edit the administrator information to update accounts that are.
As an administrator, I can change the finished product of each of those products to suit with each item.
As an administrator, I want to exit the administrator's current login session to ensure the safety.
As an administrator, I want to update customer information so that when a customer needs to
Home
Product
Login
Admin
Customer side
Sample source code
3.GITHUB Repository: https://github.com/daovinhkhang/LEGO-Shop
• The members completed their coding on schedule and fulfilled the requirements
• We worked quickly to make things testable
• We discussed issues frequently so they could be resolved
• We had a workflow figured out, i.e how well we can work with each other
• Learned a little about technical limitations
What did no go well
• We didn’t follow the design.This could have been easier with flow charts and pictures
• We didn’t pay attention to the details that add “fun”.
• Some requirements were not included in the design document Therefore, some of therequired features had to be coded late in the project This rework resulted in adverseimpacts to the project schedule
Lessons learned and further improvements
• After this project, I gained new teammates, a better understanding of coordination andteamwork During the project implementation process, we have gained more experience as well as understood more about the MVC model, Laravel, or Bootstrap Along with learning more about how to manage time between tasks well to ensure project progress is not delayed
• At the same time, in the process of working through the Laravel model, we also improved the programming language mainly PHP, as well as the HTML and CSS languages
• It takes a lot of practice to use bootstrap to master it Some validation of the admin manager page such as deleting the customer's name to update information, when submitting, the message is required to fill in customer name information while the old name of the customer is still displayed
• Will deploy more shopping functions for customers
• To control the inclusion and bundling of code, my team will use GitHub - GitHub is a project and code versioning system that acts as a social network for developers Programmers can clone source code from a
P a g e | 37 repository and GitHub is a public repository server service, each person can create an account on it to create their own repositories to work with This will hopefully make teamwork easier
1 Software Development Life Cycle Viblo.asia Available at: https://viblo.asia/p/tim-hieu- ve-sdlcsoftware-development-life-cycle-3Q75w209lWb[Accessed 17 AUG.2022]
2 What is MySQL: a complete explanation of MySQL for beginners Hostinger.vn Available at: https://www.hostinger.vn/huong-dan/mysql-la-gi/ [Accessed 17 AUG.2022]
3 What is Laravel? Laravel benefits, Laravel installation guide Wiki.matbao.net Available at: https://wiki.matbao.net/laravel-la-gi-huong-dan-cai-dat-laravel-nhanh-chong/
4 Learn what is the MVC pattern? Example of how to use the MVC pattern Vietnix.vn Available at: https://vietnix.vn/tim-hieu-mo-hinh-mvc-la-gi/ [Accessed 17 AUG.2022]
3 Software Development Life Cycle Viblo.asia Available at: https://viblo.asia/p/tim- hieu-ve-sdlcsoftware-development-life-cycle-3Q75w209lWb [Accessed 15 AUG.2022]
4 What is MySQL: a complete explanation of MySQL for beginners Hostinger.vn
Available at: https://www.hostinger.vn/huong-dan/mysql-la-gi/ [Accessed 15
5 What is Laravel? Laravel benefits, Laravel installation guide Wiki.matbao.net
Available at: https://wiki.matbao.net/laravel-la-gi-huong-dan-cai-dat-laravel-nhanh- chong/ [Accessed 15 AUG.2022]
6 Learn what is the MVC pattern? Example of how to use the MVC pattern Vietnix.vn
Available at: https://vietnix.vn/tim-hieu-mo-hinh-mvc-la-gi/ [Accessed 15 AUG.2022]
7 What is PHP Framework? 10 extremely "cool" PHP Frameworks for Developers
Itviec.com Available at: https://itviec.com/blog/framework php/?utm_source=google&utm_medium=dis_cpc&utm_campaign=hcm_performancemax
&gcl id=Cj0KCQjw3eeXBhD7ARIsAHjssr-MG_k-
46gi_psRVzS0QwI0KLYNBx9kMNyHZxKW4i2SWM4B-