1. Trang chủ
  2. » Luận Văn - Báo Cáo

1 unit 30 assignment 1 frontsheet

49 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Application Development
Tác giả Bui Tran Phuong Thao
Người hướng dẫn Trung-Viet Nguyen, Hoang Nhu Vinh
Trường học Greenwich University
Chuyên ngành Business
Thể loại assignment
Năm xuất bản 2021 – 2022
Thành phố Hanoi
Định dạng
Số trang 49
Dung lượng 745,96 KB

Cấu trúc

  • 1. REVISIONS (10)
  • 2. INTRODUCTION (P1) (11)
    • 2.1. D OCUMENT P URPOSE (11)
    • 2.2. P RODUCT S COPE (11)
    • 2.3. I NTENDED A UDIENCE AND D OCUMENT O VERVIEW (12)
    • 2.4. D EFINITIONS , A CRONYMS AND A BBREVIATIONS (12)
    • 2.5. R EFERENCES AND A CKNOWLEDGMENTS (13)
  • 3. OVERALL DESCRIPTION (P1) (13)
    • 3.1. P RODUCT O VERVIEW (13)
    • 3.2. P RODUCT F UNCTIONALITY (14)
  • 4. SPECIFIC REQUIREMENTS (P1 & M1) (16)
    • 4.1. F UNCTIONAL R EQUIREMENTS (P1) (16)
  • 5. USE CASE MODEL (P1) (17)
  • 6. WIREFLOW (P1) (23)
  • 7. RISK ASSESSMENT (P2) (28)
  • 8. V. TECHNOLOGIES EVALUATION (32)
    • 8.1. D ESIGN T OOLS (32)
    • 8.2. F RONT -E ND TECHNOLOGY STACK (38)
    • 8.1. B ACK -E ND TECHNOLOGY STACK (40)
    • 8.2. T OOLS FOR S OURCE C ONTROL M ANAGEMENT (43)

Nội dung

Assignment 1 frontsheet.docxAssignment 1 frontsheet.docxAssignment 1 frontsheet.docxAssignment 1 frontsheet.docxAssignment 1 frontsheet.docxAssignment 1 frontsheet.docxAssignment 1 frontsheet.docxAssignment 1 frontsheet.docxAssignment 1 frontsheet.docx

REVISIONS

Author(s) Description of Version Date Completed

Information about the revision This table does not need to be filled in whenever a document is touched, only when the version is being upgraded.

INTRODUCTION (P1)

D OCUMENT P URPOSE

Understanding the software development process can be challenging for customers, making it crucial to carefully analyze their requests To create a product that meets customer needs, it's essential to gather and document these requirements in a Software Requirements Specification (SRS) document This SRS not only provides insight into software complexity but also helps estimate development activities that impact the quality of the final product By doing so, it streamlines efforts and accelerates the timeline for delivering a polished software solution.

The Software Requirements Specification (SRS) for FPTBook details the development of a web-based software system designed to assist bookstore customers and owners in efficiently managing book purchases and sales This document aims to clearly define the requirements and specifications necessary for the FPTBook application, covering all aspects of the product, including user and system requirements, to provide a thorough understanding of the project's goals.

FPTBook aims to streamline the book selection, ordering, and purchasing processes for customers, while empowering bookstore owners to effectively manage their user and product databases This document will act as a reference for the development team, outlining a clear roadmap for the design and implementation of the FPTBook application Additionally, it will facilitate communication among stakeholders, ensuring alignment with project objectives and minimizing risks related to the successful completion of the application.

P RODUCT S COPE

FPTBook is a web-based software system that can be accessed through smart devices with internet connectivity Users can visit the FPTBook website to engage with the platform Unregistered users, referred to as Guests, can browse book reviews, search for titles, create accounts, and log in as Members As Members, users enjoy all Guest privileges, plus the ability to add books to their cart, mark favorites, make purchases, process payments, update account information, and rate products Shop Owners have enhanced access, allowing them to manage products, genres, user accounts, orders, and feedback, as well as generate sales reports and track best-selling items An Admin role is also present to oversee and approve requests from both Owners and Members, ensuring smooth operation of the system.

This innovative system streamlines the book selection and purchasing experience for customers, while efficiently managing user and product databases for bookstore owners.

I NTENDED A UDIENCE AND D OCUMENT O VERVIEW

This user manual serves as a comprehensive guide for developers, project managers, testers, and end-users engaging with the FPT training system, detailing user instructions and hardware/software specifications Developers must review this document before making any changes to system requirements, ensuring updates align with the outlined criteria Users can assess whether the software meets all requirements by examining the provided diagrams and specifications, and they can seek clarification in the manual if needed Testers will utilize this document to create test cases that ensure the final product reflects the initial project requirements.

D EFINITIONS , A CRONYMS AND A BBREVIATIONS

1 SRS Software requirements specification (SRS)

3 CRUD Create, read, update, delete

R EFERENCES AND A CKNOWLEDGMENTS

Smith, J (2020) "Effective Software Development Techniques." Software Development Journal, 25(3), 45-62. flm.greenwich, 2022 Content in Requirements of assignment brief s.l.:s.n

Brown, A (2019) "Best Practices in Project Management." Project Management Institute.

ISO/IEC 9126-1:2001 - Software engineering - Product quality

FPT Boook Corporation Data Security Policy – Version 1.0

OVERALL DESCRIPTION (P1)

P RODUCT O VERVIEW

As physical distancing measures fade and media buying activities rebound, internet usage is significantly increasing, transforming consumer purchasing behaviors A growing number of individuals are choosing online platforms for browsing and shopping In response to this shift, the FPT Group has strategically decided to move away from traditional business practices and fully embrace e-commerce.

FPT Corporation is strategically developing the FPTBook system (FBA - FPT Bookstore Application), a web-based solution designed to enhance the buying and selling of books for customers and bookstore owners This system aims to streamline and accelerate the book selection and ordering process for users, while also effectively managing user and product databases for bookstore operators.

FBA is expertly crafted to meet the increasing needs of book lovers in a post-health crisis world, providing a convenient and secure platform for book access and purchases At the same time, it empowers store managers with essential tools to optimize operations, cut costs, and facilitate business growth.

The FPTBook system features two primary user roles: customers and store owners Customers benefit from enhanced shopping experiences through functionalities like book browsing, cart management, and order placement Meanwhile, store owners can efficiently manage their operations with tools for overseeing book inventory, managing catalogs, and processing orders An Administrator role will also be included to monitor system activities and facilitate communication between users.

The FPT Group's strategic shift is well-timed with the changing online commerce landscape, focusing on providing a seamless solution for both book lovers and store owners in the dynamic global market.

P RODUCT F UNCTIONALITY

 Create an account to login to the system as a member

 Feed back o Guest must login to manage or send feedback.

 Manage shopping cart o Guest must login to manage or send feedback.

 Manage account o Guest must login to manage or send feedback.

 Manage Book o Admin must login to manage books o Add book o Update Book o Delete Book o View Book o Search book

 Manage Order o Admin must login to manage order o Add order o Update order o Delete order o View order

 Manage Category o Admin must login to manage category o Add category o Update category o Delete category o View category

 Manage User o Admin must login to manage category o Add user o Update User o Delete user o View user o Register

 Profile o Owner must login to manage profile o Update profile

 Manage cart o Owner must login to manage cart o Add cart o Update cart o Delete cart o View cart

SPECIFIC REQUIREMENTS (P1 & M1)

F UNCTIONAL R EQUIREMENTS (P1)

No Function Desciption Benefits Role Built by

1 Login Verify the decentralization and sign-in authenticity.

Send users to the right page where their rights are listed

2 Register To use the system, create a new account.

To access the system and place an order, create an account.

3 Search book Search the system's collection of books.

4 View Book Show selected book details View details of the book Guest

5 Feedback Send feedback to FBA

Send feedback to the system

6 Manage Shopping cart CRUD and view shopping cart

Keep the items you want to buy in your cart until you have money to spend.

7 Manage Account CRUD and view account

The profile information for your account can be modified, and you can also delete it.

8 profile Update profile Update information in profile.

9 Manage Cart CRUD and view shopping cart

Keep the items you want to buy in your cart until you have money to spend.

10 Manage Book CRUD and Allows editing Admin Thao view Book book information on the system

11 Manage Order CRUD and view order

Place orders and make purchases

12 Manage Category CRUD and view category Allows editing category information on the system

13 Manage User CRUD and view user

USE CASE MODEL (P1)

By Bui Tran Phuong Thao

Description Using this feature, a new account can be created.

Trigger When a consumer wants to open a new account and purchase books but does not already have one Pre-Condition(s):

The system is functioning without any issues.

• The internet is connected to the guest's device.

• The guest and admin are able to access the application.

• The guest and admin are not registered with an account.

• The guest and admin are clicks on the registration button.

Post-Condition(s): The register successfully The application notifies that “Register successfully!”

Basic Flow Individuals visiting the website.

The guest selects the "register" button.

On the registration page, input accurate information.

Click the "Sign Up" button to complete the process.

By Bui Tran Phuong Thao

Description This function is utilized to gain access to the system and permits the utilization of system functions.

Trigger Users need to have an account in the system.

Pre-Condition(s): User accounts have been established.

User accounts have been granted permission.

The user's device is already online during the login process.

Post-Condition(s): User successfully logged into the application

The system records successful logging.

Basic Flow A user gains access to the system.

The user selects their preferred login method.

The user inputs their account details and selects the "login" command. The system successfully verifies the provided credentials, granting the user access to the application.

The system logs the instance of a successful login.

Use Case Name View Book

Description This feature is used to view detailed book information.

Trigger The user wants to view the book's details.

Pre-Condition(s): • The system is operating as it should.

• The user device has an internet connection.

• The detail book was chosen by the user

Post-Condition(s): The user's selected book's information will be shown.

Basic Flow 1 The user clicks detail book in step one.

2 The system shows the user-selected book's information.

Use Case Name Search Book

Description Use this feature to conduct a book search.

Trigger The user wants to search a book

Pre-Condition(s):  The system is operating as it should.

 The user device has an internet connection.

 The user selects "box search"

Post-Condition(s): When a user searches for a book, the system then displays the book's details in depth.

Basic Flow 1 The system user access.

The user clicks the search box in step two.

Description This feature was utilized to provide the book comments.

Trigger The user want to feedback a book

Pre-Condition(s): • The user device has an internet connection.

• The application is available to the user.

• The user has already paid for the book.

Post-Condition(s): The user feedback book successfully

Basic Flow 1 The user who accesses the system

2 The user picks the book they'd like feedback on.

3 The user selected the book's feedback.

4 The user reviews the book and posts their review online.

5 "Feedback successful" will be displayed by the system.

Use Case Name Manage Order

Description Utilize this feature to manage your order The user can add, view, modify, or delete order from their list order after logging into the site.

Trigger The customer wishes to control their order.

Pre-Condition(s): • The user device has an internet connection.

• The application is available to the user.

• The user is logged in to the system already.

Post-Condition(s): The order will be display

Basic Flow 1 The user first logs into the system

2 The user signs on to the platform

4 The order page will be shown by the system.

5 The user has the option to add, amend, or remove a book from their order.

Use Case Name Manage shopping cart

Description Utilize this feature to manage your shopping cart The user can add, view, modify, or delete books from their list cart after logging into the site

Trigger The customer wishes to control their shopping cart.

Pre-Condition(s): • The user device has an internet connection.

• The application is available to the user.

• The user is logged in to the system already.

Post-Condition(s): The shopping cart will be display

Basic Flow 1 The user first logs into the system

2 The user signs on to the platform

3 The consumer choose a shopping cart.

4 The shopping cart page will be shown by the system.

5 The user has the option to add, amend, or remove a book from their cart.

Use Case Name Manage account

Description This feature is used for account management.

Trigger The user wants to manage account

Pre-Condition(s): • The user device has an internet connection.

• The application is available to the user.

• The user is logged in to the system already.

Post-Condition(s): The manage account will be display

Basic Flow 1 User logs into the system

2 The user signs on to the platform

3 The consumer selects "Manage Account"

4 The system will show the page for managing accounts.

5 The user has the option to amend or delete personal information.

Use Case Name Manage Book

By Bui Tran Phuong Thao

Description The system's books are all managed using this feature The owner can view, add, modify, and delete products from the store by logging into the system.

Trigger when a user wants to edit a product's information on the FPT Books website.

Pre-Condition(s): 1 Everything is operating as it should.

2 The user device has an internet connection.

3 The user must sign in to the FPT Book shop.

Post-Condition(s): In the database, information about the product is added, updated, and removed.

Basic Flow 1 The user first logs into the system

2 The user signs on to the platform

4 The book page will be shown by the system.

5 The user has the option to add, amend, or remove a book from their list book.

WIREFLOW (P1)

RISK ASSESSMENT (P2)

E BUI TRAN PHUONG THAO OBJECTIVE

Inadequa te user requirem ents

Conduct thorough user interviews and requirement s gathering to ensure comprehensi ve understandin g.

RF Technica Medium High High Development Have a Medium Medium Medium Yes

Team with alternative tools and resources

Regularly update the team's skills in using the selected tools.

Implement robust security measures such as encryption, access controls, and regular security audits.

Provide user training and create user- friendly interfaces

Gather user feedback for continuous

Low Low Low Yes improvemen t.

Integratio n issues with external systems

Conduct thorough testing and have contingency plans for integration failures.

Scope creep Medium High High

Implement a change request process and regularly review project scope with stakeholders

Cross-train team members and have contingency plans for key roles.

RF Budget Medium High High Finance Monitor Low Low Low Yes

08 overruns Team project expenses closely and adjust the budget as needed.

Legal and complian ce issues

Low High Low Legal Team

Regularly review and update the project to ensure compliance with legal and industry regulations.

Data backup and recovery failure

Medium High High IT Team

Implement regular automated data backups and test the recovery process.

V TECHNOLOGIES EVALUATION

D ESIGN T OOLS

The Unified Modeling Language (UML) was developed to provide a comprehensive visual modeling language that effectively represents the architecture, design, and implementation of complex software systems, addressing both structural and behavioral aspects Additionally, UML finds applications outside of software development, including process flow modeling in manufacturing.

UML diagrams serve as essential blueprints in various fields, illustrating the boundaries, structures, and behaviors of systems and their components.

UML is not a programming language; however, it offers tools for generating code in multiple languages through UML diagrams It is closely related to object-oriented analysis and design.

There are also the greatest UML modeling tools accessible that assist us in drawing UML diagrams, such as:

When creating your software design document for FPTBook, it is essential to evaluate and choose the right tools for designing UML (Unified Modeling Language) diagrams, as they play a vital role in effectively conveying your software's architecture and design UML diagrams are instrumental in visualizing the structure, behavior, and interactions of software components Consider using popular UML design tools to enhance your project's clarity and communication.

Description: Lucidchart is a cloud-based diagramming tool that supports UML diagramming It's user- friendly and offers collaboration features.

Lucidchart's accessibility from any location makes it ideal for remote team collaboration, while its seamless integration with popular tools such as Jira and Confluence enhances project management and documentation efficiency.

 User-Friendly: Lucidchart is known for its user-friendly interface, making it easy for team members to quickly create UML diagrams.

 Collaboration: It offers real-time collaboration features, which are useful for remote teams working on software design together.

 Integration: Lucidchart can be integrated with popular project management and productivity tools, streamlining the design and development process.

 Cost: While it offers a free basic version, some advanced features require a paid subscription, which can be costly for larger teams or projects.

 Limited Offline Access: Lucidchart is primarily a cloud-based tool, and offline access may be limited.

Description: Visual Paradigm is a comprehensive UML and software design tool that offers a wide range of diagram types It's suitable for both small and large projects.

Visual Paradigm is a versatile tool that supports a wide range of UML diagram types, making it ideal for capturing various elements of software design Additionally, it features code generation capabilities and integrates seamlessly with development environments.

 Comprehensive: Visual Paradigm is a feature-rich tool that supports a wide range of UML diagrams and modeling notations.

 Code Generation: It offers code generation capabilities, helping bridge the gap between design and development.

 Team Collaboration: It allows for effective team collaboration through version control and integration with various development environments.

 Complexity: Due to its extensive features, Visual Paradigm may have a steeper learning curve for new users.

 Cost: It can be relatively expensive, especially for small teams or individual users.

 Draw.io (now part of diagrams.net)

Description: Draw.io, now part of diagrams.net, is a free and open-source diagramming tool that supports

UML diagrams It's easy to use and can be used online or offline.

Justification: Draw.io is a cost-effective option, especially for small teams or projects with budget constraints It's simple to get started with and provides basic UML diagramming capabilities.

 Open-Source: Draw.io (now diagrams.net) is open-source and free to use, making it a cost-effective choice.

 Ease of Use: It's simple and intuitive, making it accessible to both beginners and experienced users.

 Offline Capability: You can use it both online and offline, which can be handy for working in various environments.

 Limited Advanced Features: While it's great for basic diagramming, it may lack some advanced features offered by paid tools.

 Lack of Direct Collaboration: Collaboration features are not as robust as some other tools.

Description: Enterprise Architect is a comprehensive UML modeling and design tool that is suitable for large and complex projects It also supports model-driven development.

Justification: Enterprise Architect is a robust tool for organizations working on complex software projects It offers advanced modeling capabilities and extensive documentation features.

 Extensive Features: Enterprise Architect is suitable for complex and large-scale projects, offering a wide range of modeling and diagramming capabilities.

 Model-Driven Development: It supports model-driven development and can generate code from UML diagrams.

 Documentation: The tool provides advanced documentation features, making it suitable for thorough project documentation.

 Cost: It can be quite expensive, especially for small teams or individual users.

 Learning Curve: Due to its complexity, it may take time for users to become proficient with the tool.

Description: PlantUML is an open-source tool that allows you to create UML diagrams using a text-based

DSL (Domain-Specific Language) Diagrams are generated from plain text descriptions.

Justification: PlantUML is a lightweight and text-based option for UML diagram creation It can be integrated into documentation or version control systems easily.

 Lightweight: PlantUML is lightweight and easy to use, as it allows you to create UML diagrams using a text-based DSL.

 Integration: It can be integrated into documentation and version control systems effortlessly.

 Cost: It's open-source and free to use.

 Limited Visual Appeal: Diagrams generated by PlantUML may lack the visual appeal and customization options of other tools.

 Text-Based: It requires writing code to create diagrams, which may not be ideal for all users. b Tools to design User Interface

User interface (UI) design focuses on enhancing the visual experience of digital products, incorporating elements such as colors, typography, images, and navigation features like buttons and scrollbars Effective UI design is crucial for delivering an outstanding user experience, making it essential for digital designers to equip themselves with reliable UI design tools.

User Interface (UI) design tools are essential software applications that enable the development of visual and interactive components for digital products, including websites and mobile applications These tools empower designers to craft the layout, aesthetics, and user interactions of an interface effectively.

 Efficient Design: UI design tools provide a visual and intuitive platform for designers to create and iterate on the user interface of a software application.

 Visual Prototyping: Designers can create interactive prototypes to demonstrate the functionality and flow of the user interface.

 Collaboration: Many UI design tools offer collaboration features, enabling designers, developers, and stakeholders to work together in real-time.

 Consistency: Designers can maintain consistency in design elements (colors, typography, components) throughout the project.

 Export and Handoff: UI designs can be easily exported in various formats and shared with development teams for implementation.

 Learning Curve: Some UI design tools, especially those with advanced features, may have a learning curve for new users.

 Cost: While some tools offer free versions, advanced features or team collaboration capabilities may require a paid subscription, which can be costly.

 Compatibility: Compatibility issues may arise when trying to transfer designs to development environments, especially if developers are using different tools or frameworks.

 Over-Complexity: Some UI design tools may offer an overwhelming number of features that aren't always needed for simpler projects.

 Platform Dependency: Some tools are platform-specific (macOS or Windows), limiting collaboration among team members with different operating systems.

Here are a few popular UI design tools that you can consider for the FPTBook project:

Sketch is a powerful UI design tool specifically for macOS, renowned for its vector-based interface design features It is a popular choice among designers for crafting visually stunning and interactive user interfaces for both web and mobile applications.

 Advantages: Mac-friendly, vector-based, user-friendly, and supports a wide range of plugins.

 Disadvantages: Limited platform (macOS only), and lacks built-in collaboration features.

Adobe XD is a versatile UI/UX design and prototyping tool created by Adobe, designed for cross-platform use It empowers designers to develop user interfaces, wireframes, and interactive prototypes, offering a complete solution for the entire design workflow.

 Advantages: Cross-platform (macOS and Windows), integrated prototyping, and seamless integration with other Adobe products.

 Disadvantages: Learning curve for Adobe beginners, and some advanced features require a subscription.

Figma is a powerful web-based UI design and prototyping tool that facilitates real-time collaboration among designers, developers, and stakeholders With its extensive design features, Figma is ideal for both individual and team projects, enhancing productivity and creativity in the design process.

 Advantages: Web-based, real-time collaboration, versatile for UI design, wireframing, and prototyping.

 Disadvantages: Requires an internet connection for use, and advanced features may require a paid subscription.

InVision is primarily a prototyping tool that focuses on creating interactive prototypes of UI designs It's widely used for simulating user interactions and testing the usability of designs before development.

 Advantages: Focused on prototyping, strong collaboration features, and integration with other design tools.

 Disadvantages: Not a full design tool, and advanced features may require a paid subscription.

Balsamiq is a user-friendly wireframing and low-fidelity prototyping tool that facilitates the rapid sketching and development of basic UI mockups and wireframes Its simplicity makes it an ideal choice for quickly communicating design concepts effectively.

 Advantages: Rapid wireframing, simplicity, desktop and web versions available.

 Disadvantages: Limited for high-fidelity designs, and collaboration features may be limited. c Conclude which tools will be used for the design of the application

For my assignment, I chose Draw.io as my primary diagramming tool due to its status as the best free option available Although it may not be the leading choice for flowchart design, it allows for easier creation of diagrams and visualizations compared to vector-based tools Additionally, Draw.io excels in real-time collaboration, especially when integrated with Google Drive, enabling multiple users to work on a diagram simultaneously and enhancing group work efficiency.

F RONT -E ND TECHNOLOGY STACK

Definition: A front-end programming language is a language used for building the user interface (UI) and handling user interactions on a web application.

Advantages of Using JavaScript as the Front End Programming Language:

 Ubiquitous: JavaScript is supported by all modern web browsers, making it a universal choice for front-end development.

 Rich Ecosystem: It has a vast ecosystem of libraries and frameworks that simplify development

 Asynchronous Programming: JavaScript's asynchronous nature allows for responsive and non- blocking user interfaces.

 Client-Side Validation: It enables client-side form validation, reducing server load and providing a better user experience.

 Browser Compatibility: Cross-browser compatibility can be challenging due to different browser implementations.

 Security: It can be susceptible to security vulnerabilities like XSS if not properly managed.

Conclusion: JavaScript is the most suitable choice for the front-end programming language due to its versatility, broad adoption, and extensive ecosystem. b JavaScript Library/Framework

Definition: JavaScript libraries/frameworks are pre-written sets of code that help streamline and simplify front-end development.

Advantages of Using React.js as the JavaScript Library/Framework:

 Component-Based: React.js follows a component-based architecture, making it easy to manage and reuse UI elements.

 Virtual DOM: The Virtual DOM helps optimize rendering performance, resulting in faster UI updates.

 Large Community: It has a large and active community, providing excellent support and a wealth of third-party libraries.

 JSX: React's JSX allows for declarative UI, improving code readability.

 Learning Curve: React may have a steeper learning curve for beginners.

 Boilerplate Code: Creating a new React project often involves setting up a significant amount of boilerplate code.

Conclusion: React.js is chosen as the JavaScript library/framework for its component-based architecture, performance optimizations, and strong community support. c CSS Framework

Definition: A CSS framework is a pre-designed set of CSS rules and stylesheets that can be used to style the UI consistently.

 Advantages of Using Bootstrap as the CSS Framework:

 Responsive Design: Bootstrap provides a responsive grid system and components, ensuring the application works well on various devices.

 Customization: It allows for easy customization through variables and themes.

 Documentation: Bootstrap has extensive documentation and a wide range of examples.

 Community and Support: It has a large user base and active community, making it easy to find solutions to common problems.

 Heavy: Bootstrap can be relatively heavy, leading to larger file sizes if not trimmed down.

 Uniform Look: While it offers consistency, it can result in websites looking similar if not customized extensively.

Conclusion: Bootstrap is selected as the CSS framework for its responsive design capabilities, extensive documentation, and wide community support. d Conclusion for Front-End Technologies

In conclusion, the front-end technology stack for FPTBook will consist of:

 Front End Programming Language: JavaScript

 JavaScript Library/Framework: React.js

B ACK -E ND TECHNOLOGY STACK

Definition: A back-end programming language is a language used to build server-side logic and handle the business logic and data processing of a web application.

Advantages of Using Node.js as the Back-End Programming Language:

 JavaScript Full Stack: Using JavaScript on both the front-end and back-end reduces context- switching and enhances code consistency.

 Non-blocking I/O: Node.js is known for its asynchronous, non-blocking I/O model, which makes it highly efficient for handling multiple concurrent requests.

 Large Package Ecosystem: Node.js has a rich ecosystem of packages (npm) that simplifies development.

 Single-threaded: Node.js is single-threaded, which can limit its ability to fully utilize multi-core processors for CPU-bound tasks.

Callback hell occurs when excessive use of callbacks results in deeply nested code structures, making the code difficult to read and maintain In conclusion, Node.js is an excellent choice for back-end development due to its compatibility with JavaScript, asynchronous features, and a vast ecosystem of packages.

Definition: The operating system is the software that manages hardware resources and provides services for running applications.

Advantages of Using Linux as the Operating System:

 Stability: Linux is known for its stability and reliability, which is crucial for server environments.

 Security: Linux is less susceptible to malware and security threats compared to other operating systems.

 Open Source: It's open-source, which means no licensing costs and a vibrant community for support.

 Learning Curve: Administrators may require Linux-specific knowledge and skills.

Conclusion: Linux is chosen as the operating system due to its stability, security, and open-source nature, which is well-suited for hosting a web application. c Web Server

Definition: A web server is software that handles HTTP requests and serves web pages and resources to clients.

Advantages of Using Nginx as the Web Server:

 Performance: Nginx is known for its high performance and low resource usage.

 Reverse Proxy: It can act as a reverse proxy, load balancer, and serve static content efficiently.

 Scalability: Nginx is highly scalable and can handle a large number of concurrent connections.

 Configuration Complexity: Complex configurations may require a learning curve.

Conclusion: Nginx is selected as the web server for its excellent performance, reverse proxy capabilities, and scalability. d Database

Definition: The database is where data is stored and managed It's essential for managing user data, book information, and transactions.

Advantages of Using PostgreSQL as the Database:

 Reliability: PostgreSQL is known for its reliability and data integrity.

 Advanced Features: It offers advanced features like support for JSON data, full-text search, and extensibility.

 Open Source: Being open source, PostgreSQL has no licensing costs.

 Complexity: Setting up and configuring PostgreSQL may require expertise.

Conclusion: PostgreSQL is chosen as the database due to its reliability, advanced features, and open- source nature. e Hosting

Definition: Hosting refers to the infrastructure and services used to deploy and run the web application. Advantages of Using Amazon Web Services (AWS) for Hosting:

 Scalability: AWS provides scalable hosting solutions to accommodate growing user bases.

 Reliability: AWS offers high availability and reliability with its global infrastructure.

 Managed Services: AWS provides managed services for databases, caching, and more.

 Cost: AWS costs can add up, and cost management is crucial.

Conclusion: AWS is selected for hosting due to its scalability, reliability, and a wide range of managed services. f Frameworks

Definition: Frameworks are pre-built sets of tools and libraries that streamline and simplify web application development.

Advantages of Using Express.js as the Back-End Framework:

 Minimalistic: Express.js is minimalistic and flexible, allowing developers to choose components as needed.

 Middleware: It has a robust middleware system for handling requests and responses.

 Community: Express.js has a large and active community, leading to good documentation and support.

 Opinionated: It's less opinionated compared to some other frameworks, which may require more decision-making.

Conclusion: Express.js is chosen as the back-end framework due to its flexibility, middleware support, and strong community. g Conclusion for Back-End Technologies

In conclusion, the back-end technology stack for FPTBook will consist of:

 Back-End Programming Language: Node.js

 Hosting: Amazon Web Services (AWS)

 Back-End Framework: Express.js

T OOLS FOR S OURCE C ONTROL M ANAGEMENT

a Tools for Source Control Management

Source control management (SCM) tools are essential software systems that facilitate the tracking and management of changes to source code and various project assets They play a crucial role in ensuring collaboration among developers, maintaining version control, and providing traceability throughout the software development process.

Advantages of Using Git for Source Control Management:

 Distributed Version Control: Git is a distributed SCM, allowing developers to work offline and independently while easily syncing changes with the central repository.

 Branching and Merging: Git excels in branching and merging, enabling efficient code collaboration and feature development.

 Strong Community: Git has a massive and active user community, resulting in extensive support and a wealth of third-party integrations.

 GitHub Integration: Platforms like GitHub provide a user-friendly interface for Git repositories, making it easy to manage and collaborate on code.

 Learning Curve: Git can have a steep learning curve for beginners.

 Command-Line Interface: While GUI clients exist, Git primarily relies on the command-line interface.

Conclusion: Git is chosen as the source control management tool due to its popularity, distributed nature, and strong community support. b Tools to Be Used to Manage Source Control

Definition: To manage source control effectively, you will need additional tools and services to complement Git and streamline the development workflow.

Advantages of Using GitHub for Source Control Management:

 User-Friendly Interface: GitHub offers an intuitive and user-friendly web interface for managing

 Collaboration Features: It provides collaboration features like issue tracking, pull requests, and code reviews.

 Integration Ecosystem: GitHub integrates seamlessly with various development and CI/CD tools, enhancing the development workflow.

 Security: GitHub offers security features such as code scanning and dependency analysis.

 Pricing: While GitHub offers free plans for public repositories, private repositories may require a subscription.

Conclusion: GitHub is chosen as the tool for managing source control due to its user-friendly interface, collaboration features, and extensive integration ecosystem.

University, G o., 2023 University Of Greenwich Learning Materials

Available at: flm.greenwich.edu.vn

Top 7 backend programming languages in 2022, Next Technology Professionals

Available at: https://nexttechnology.io/top-7-backend-programming-languages-in-2022/

Techopedia, 2022 - definition of Microsoft window Available at: https://www.techopedia.com/definition/ 3390/microsoft-windows

Available at: https://www.techopedia.com/definition/2639/macintosh-operating-system-mac-os

Web servers list (2022) List of web servers

Available at: https://www.webdevelopersnotes.com/web-servers-list

Singh, S (2022) Top 15 databases to use in 2022 and beyond, Appinventiv

Available at: https://appinventiv.com/blog/top-web-app-database-list/

(Accessed: October 28, 2022) Tutorials Point (2022) SDLC - Waterfall Model, Tutorials Point

Available at: https://www.tutorialspoint.com/sdlc/sdlc_waterfall_model.htm

Tutorials Point (2022) SDLC - V-model, Tutorials Point

Available at: https://www.tutorialspoint.com/sdlc/sdlc_v_model.htm

Available at: https://www.tutorialspoint.com/sdlc/sdlc_agile_model.htm

Marketing, N (2022) Best web hosting services: Top 9 website host companies of 2022, SFGATE

Available at: https://www.sfgate.com/market/article/best-web-hosting-16583083.php

Jeel Patel, the founder of Monocubed, serves as the primary curator and writer for the site's content In 2022, he highlighted the top 10 most popular web frameworks to consider for development, emphasizing quality and relevance in today's digital landscape.

Available at: https://www.monocubed.com/blog/most-popular-web-frameworks/

10 best source code management tools for version control (2022) Software Testing Help.

Available at: https://www.softwaretestinghelp.com/best-source-code-management-tools/

Morales, J (2022) Draw.io: Comprehensive Review on features, Price, and more, Draw.io: Comprehensive Review on Features, Price, and More

Available at: https://www.mindonmap.com/blog/drawio-review/

(Cousins, C (2019) Adobe XD Vs sketch: Pros + cons, Design Shack Design Shack Available at: https://designshack.net/articles/software/adobe-xd-vs-sketch/

GeeksforGeeks (2022) Advantages and disadvantages of HTML, GeeksforGeeks Available at:https://www.geeksforgeeks.org/advantages-and-disadvanatges-of-html/

GeeksforGeeks (2020) Advantages and disadvantages of CSS, GeeksforGeeks Available at: https://www.geeksforgeeks.org/advantages-and-disadvantages-of-css/ [Accessed 5 10 2023].

W3schools (2022) Advantages and disadvantages of reactjs, W3schools

Available at: https://www.w3schools.blog/advantages-disadvantages-reactjs

Cordenne Brewster and Brewster, C (2022) What is vue.js? the Pros and cons of vue.js in 2022, Trio Developers Available at: https://www.trio.dev/blog/why-use-vue-js

Inouye, J (2022) What is bootstrap? pros and cons of this framework, Hackr.io

Available at: https://hackr.io/blog/what-is-bootstrap-framework

Webdesigner Depot (2021) The Pros and cons of Tailwind CSS, Webdesigner Depot.

Available at: https://www.webdesignerdepot.com/2021/09/the-pros-and-cons-of-tailwind-css/

The advantages and disadvantages of JavaScript, freeCodeCamp.org freeCodeCamp.org

Available at: https://www.freecodecamp.org/news/the-advantages-and-disadvantages-of-javascript/

Pros and cons of using C# as your backend programming language, Pros and Cons of Using C# as Your Backend

Available at: https://www.agilites.com/pros-and-cons-of-using-c-as-your-backend-programming- language.html

GeeksforGeeks (2020) Advantages and disadvantages of windows operating system, GeeksforGeeks. Available at: https://www.geeksforgeeks.org/advantages-and-disadvantages-of-windows-operating- system/

5 advantages and disadvantages of linux operating system: Drawbacks & benefits of linux operating system, HitechWhizz Page 82

Available at: https://www.hitechwhizz.com/2022/05/5-advantages-and-disadvantages-drawbacks-benefits- of-linux- operating-system.html

KeyCDN (2022) Nginx vs Apache - KeyCDN support, KeyCDN

Available at: https://www.keycdn.com/support/nginx-vs-apache

Hilton, P (2022) Pros and cons of using IIS, asp, perlscript and ado on windows NT, Peter Hilton

Available at: https://hilton.org.uk/iis-asp-perlscript-ado

(Accessed: December 12, 2022) W3schools (2022) MySQL Advantages and disadvantages, W3schools. Available at: https://www.w3schools.blog/mysql-advantages-disadvantages

(Accessed: December 12, 2022) Admin, R (2020) Understanding the pros and cons of using Microsoft SQL server, Rothmobot

Available at: https://www.rothmobot.com/the-advantages-and-disadvantages-of-microsoft-sql-server/ [Accessed 5 10 2023].

(Accessed: December 12, 2022) Web Hosting Cat (2022) Bluehost pros and cons 2022, Web Hosting Cat

| Web Hosting Tips, News, and Reviews

Available at: https://webhostingcat.com/pros-and-cons/bluehost-pros-and-cons/

(Accessed: December 12, 2022) Web Hosting Cat (2022) Hostgator pros and cons 2022, Web HostingCat | Web Hosting Tips, News, and Reviews.

Ngày đăng: 16/01/2024, 14:49

w