The Hashemite University, Zarqa, Jordan
Faculty of Prince Al-Hussein Bin Abdallah II for Information Technology
Computer Science and Applications Department
CODESTATION
A project submitted
in partial fulfillment of the requirements for the
[Link]. Degree in Computer Science and Applications
By
Abdelwahab Ayoub abuhamdeh (2241086)
Fathi Ghazi Ghanem (2230103)
Anas Ahmed Abu Saaleek (2036054)
Ahmad Mohammad Issa Sabri Alshareef (2230097)
Supervised by
[Link] mahmoud hamed hamadneh
Committee Member Names
[Link] Abdel Rahman Mohammad Bsoul
[Link] Eddien Awad Abdallah Attar
MAY 2024
1
CERTIFICATE
It is hereby certified that the project titled < CODESTATION >, submitted by
undersigned, in partial fulfillment of the award of the degree of “Bachelor in
Computer Science and Applications” embodies original work done by them under my
supervision.
All the analysis, design and system development have been accomplished by
the undersigned. Moreover, this project has not been submitted to any other college
or university.
2
ABSTRACT
This project aims to develop an online platform for buying and selling digital
products, focusing on creating a seamless experience for users. It includes features
such as user authentication, comprehensive product catalog management, secure
payment processing, order tracking, and effective dispute resolution mechanisms.
The platform emphasizes user convenience, security, and accessibility, aiming to
bridge the gap between buyers and sellers in the digital marketplace. Multiple
payment methods are integrated to cater to diverse user preferences, enhancing the
overall usability and accessibility of the platform. The platform's user-friendly
interface and real-time updates ensure a smooth transaction process, enhancing
trust and satisfaction among users. Through iterative testing and user feedback, the
platform continually improves to meet the evolving needs of digital commerce,
offering a reliable and efficient solution for buyers and sellers alike.
3
TABLE OF CONTENTS
CERTIFICATE....................................................................................................... 2
ABSTRACT.......................................................................................................... 3
TABLE OF CONTENTS......................................................................................... 4
LIST OF FIGURES................................................................................................ 6
LIST OF TABLES................................................................................................... 7
Chapter 1: Introduction.................................................................................. 8
1.1 Overview.............................................................................................. 8
1.2 Project Motivation............................................................................... 8
1.3 Problem Statement.............................................................................. 9
1.4 Project Aim and Objectives.................................................................. 9
1.5 Project Limitations............................................................................. 10
1.6 Project Expected Output.................................................................... 11
1.7 Project Schedule................................................................................ 12
1.8 Report Organization........................................................................... 13
Chapter 2: Literature Review........................................................................ 14
2.1 Introduction.......................................................................................14
2.2 Existing Systems.................................................................................14
2.3 Overall Problems of Existing Systems.................................................16
2.4 Overall Solution Approach................................................................. 16
Chapter 3: Requirement Engineering and Analysis....................................... 17
3.1 Stakeholders.......................................................................................17
3.2 Use Case Diagram.............................................................................. 18
3.3 Functional User Requirements...........................................................24
3.4 Non-Functional User Requirements................................................... 25
Chapter 4: Architecture and Design.............................................................. 28
4
4.1 Software (System) Architecture......................................................... 28
4.2 Software Design................................................................................. 29
Chapter 5: Implementation Plan................................................................... 34
5.1 Description of Implementation.......................................................... 34
5.2 Programming language and Technology............................................ 34
5.3 Part Of Implementation If Possible....................................................39
Chapter 6: Testing Plan................................................................................. 41
6.1 Black-box............................................................................................41
6.2 White-box.......................................................................................... 42
6.3 Testing Automation............................................................................ 43
Chapter 7: Conclusion and Results................................................................ 44
7.1 Conclusion and Results...................................................................... 44
7.2 Future Work....................................................................................... 45
References....................................................................................................... 46
5
LIST OF FIGURES
FIGURE [2.1] : G2A Picture
………..……………………………………..………………………………14
FIGURE [2.2] : Z2U Picture
………..…………………………………….……………………………….15
FIGURE [2.3] : Eneba Picture
………..…………………………………….……………………………15
FIGURE [3.1]: Use Case
Diagram…………………………………………………………………..…18
FIGURE [4.2]: Logical View
Diagram.…………………………………….…………………………28
FIGURE [4.3]: User Registration Sequence
Diagram..………………………….…………..29
FIGURE [4.4]: Customer Service Sequence
Diagram.…………………………………..….29
FIGURE [4.5]: Buying Sequence
Diagram……………………………..…………………………30
FIGURE [4.6] : Manage Seller Admin Panel Sequence
Diagram……………………..….30
FIGURE [4.7]: JWT Sequence
Diagram…………………………………………………………….31
FIGURE [4.8] : Class
Diagram…………..:……………………….…………………………………….32
FIGURE [4.9] : Database Logical View
Diagram………..………………………………………33
6
FIGURE [5.1] : User Cart
Functions…………………..………..…………………………………… 39
FIGURE [5.2] : Security Configuration
File…………………..…………………………………… 39
FIGURE [5.3] : Item Controller
File……………………………..…………………………………… 40
FIGURE [5.4] : The Email Verification
Code………………..…………………………………… 40
FIGURE [6.1] : Account
Activation.……………………………..…………………………………… 42
7
LIST OF TABLES
Table [1.1]: Project
Schedule…………………………………………………………………………….
12
Table [3.2]: Login Basic
Flow…………………………………………….………………………………19
Table [3.3]: Feedback and Reviews Basic
Flow………………………………………………..19
Table [3.4]: Register Basic
Flow……………………………………………………………………….19
Table [3.5]: Customer Support Basic
flow…………………………………………………………20
Table [3.6]: Adding to Cart Basic
Flow……………………………………………………………..20
Table [3.7]: Payment Basic
Flow……………………………………………………………….…….20
Table [3.8]: Checkout Process Basic
Flow…………………………………………………..……21
Table [3.9]: Order Tracking Basic
Flow…………………….……………………………….……..21
Table [3.10]: Login as a Seller Basic
Flow………………………………………………….…….21
Table [3.11]: Login View Payments Received Basic
Flow…………………….…………..22
Table [3.12]: Manage Via Admin Panel Basic
Flow…………………………….…………...22
8
Table [3.13]: Customer Support Team Basic
Flow…………….…………..…………………22
Table [3.14]: Support Team Report Basic
Flow.………………….………………..………….23
Table [3.15]: Admin Report Basic
Flow.…………………….……………………………….…….23
9
CHAPTER 1: INTRODUCTION
Each chapter should begin with an introduction that tells what will be covered
in the chapter. Add it directly below the chapter heading, and it should tell the
chapter’s importance to the overall report.
1.1 Overview
Our project introduces an innovative online platform akin to G2A, connecting
sellers and buyers in the digital marketplace. The platform centers around digital
products, particularly digital codes. Key features include robust user authentication,
efficient product catalog management, secure payment gateways, order tracking,
and effective dispute resolution mechanisms. Prioritizing user experience, we
emphasize convenience, security, and accessibility. Multiple payment methods cater
to diverse preferences, enhancing overall usability. With a user-friendly interface and
real-time updates, transactions are streamlined, fostering trust and satisfaction.
Continuous refinement through iterative testing and user feedback ensures a reliable
and efficient digital commerce solution
1.2 Project Motivation
We have chosen this project after extensive engagement with the local digital
market and years of experience in this field. We found that there is no place for
sellers or clients to turn to except social media platforms, which is not practical at all.
We want our platform to be the go-to destination for everyone in the interested
category in this field, whether they are sellers or clients.
The importance of the project is divided into three parts:
1. A section serving the customer by providing them with a secure place to
purchase digital products easily and access all available offers for these
products, enabling them to compare between sellers conveniently and in one
place.
2. A section serving the seller by providing them with a platform to showcase
their products and make the promotion process extremely easy. Additionally, it
offers an easy-to-use dashboard where they can track all profits and financial
matters.
3. A section serving both the customer and the seller, with the most important
aspect being the provision of multiple payment services. Sellers no longer
10
need to worry about payment methods, and financial security is ensured
because we act as the intermediary between the seller and the buyer. Funds
will only be transferred to the seller once the customer confirms receipt of the
product and all matters are in order.
The local digital products market is experiencing significant growth, and it is
crucial that we bring together all stakeholders in this market in one secure place so
that everyone can benefit maximally from this market.
1.3 Problem Statement
The absence of a reliable platform for customers to purchase any digital item,
apart from social media, can lead to potential fraud from users with fake accounts on
those platforms. Additionally, customers may struggle to compare product prices
because they cannot easily find all sellers in one place. Sellers, on the other hand, are
limited to creating pages to display their goods, which may not be very practical, and
managing various payment methods can be challenging as their funds are scattered
across multiple sources.
The proposed application aims to address these challenges by facilitating the
buying process for both buyers and sellers.
1.4 Project Aim and Objectives
The primary goal of this project is to develop an innovative online platform,
named CODESTATION, focused on facilitating the buying and selling of digital
products. The platform aims to provide a seamless and secure experience for users,
bridging the gap between buyers and sellers in the digital marketplace
● User Convenience: Design and implement a user-friendly interface for easy
navigation and accessibility, ensuring a positive user experience.
● Comprehensive Product Catalog Management: Develop a robust system for
managing product listings, including detailed descriptions, images, and pricing
information.
11
● Secure Payment Processing: Integrate multiple payment methods to cater to
diverse user preferences, ensuring secure and efficient payment processing.
● Order Tracking: Implement a feature for users to track their orders in
real-time, providing transparency and reliability.
● Effective Dispute Resolution: Establish mechanisms for resolving disputes
between buyers and sellers, promoting trust and confidence in the platform.
● Continuous Improvement: Conduct iterative testing and gather user feedback
to continually enhance and optimize the platform for evolving user needs.
● Marketplace Integrity: Ensure platform integrity by enforcing policies,
verifying sellers, and maintaining a trustworthy digital marketplace
environment.
1.5 Project Limitations
1. Geographical Limitations: Sellers must be from Jordan.
2. Electronic payment: gateways must comply with the requirements of
banks and financial institutions in Jordan
Different payment options should be provided to suit customers in
Jordan, such as cash on delivery, bank transfer, and the use of local
credit cards.
Additionally, other payment options should be provided such as
e-wallets and the Cliq .
3. The product is available for sale only in digital format, without any
physical or tangible copies.
4. Functional and Non-functional Requirements: Meeting specific user
experience standards or functional performance requirements may
pose limitations in terms of time and resources available for
development.
12
5. Seller Verification: Without a track record or established reputation
system, verifying the legitimacy of sellers becomes challenging. Users
may be wary of purchasing digital products, such as codes, from
unknown or unverified sellers.
6. Transaction Security: Users might be concerned about the security of
their transactions, including issues like fraudulent transactions,
unauthorized access to their payment information, or the risk of
receiving invalid or counterfeit digital codes.
7. Buyer Protection Policies: In the absence of clear buyer protection
policies, users may hesitate to make purchases on the platform,
fearing the lack of recourse in case of disputes, such as receiving
incorrect or non-functional digital codes.
1.6 Project Expected Output
1. Intuitive and responsive UI design: Designing a visually appealing interface
that is easy to navigate and accessible across various devices, ensuring a
positive user experience.
2. Efficient product management system: Implementing a backend system to
add, update, categorize, and manage digital products effectively, ensuring the
catalog is organized and up-to-date.
3. User-friendly account management: Allowing users to easily register, log in,
and manage their profiles, providing a seamless experience for repeat
purchases and order tracking.
4. Seamless shopping cart and checkout process: Creating a smooth process for
users to add products to their cart, review their order, and complete the
purchase securely, minimizing friction and abandoned carts.
5. Integration with secure payment gateways: Incorporating trusted payment
gateways to handle transactions securely, instilling confidence in customers
during the checkout process and Integration with Local Payment Gateways
13
Identify and partner with local payment gateway providers that support Cliq
and Wallets integration.
6. Streamlined order management: Developing backend tools to manage orders
efficiently, including processing, tracking, and generating invoices, to
streamline operations and fulfill customer orders promptly.
7. SEO optimization and marketing tools: Optimizing the platform for search
engines and integrating marketing tools like social media sharing and email
campaigns to attract and retain customers.
8. Analytics and reporting capabilities: Integrating analytics tools to track site
performance, user behavior, and sales data, providing insights to improve
marketing strategies and optimize the user experience.
9. Responsive customer support: Offering multiple channels for customer
support, such as help desk systems and live chat, to address inquiries and
resolve issues promptly, enhancing customer satisfaction.
10. Scalability and ongoing maintenance: Building the platform with scalability
in mind to accommodate growth in traffic and product offerings, while also
ensuring regular maintenance and updates to keep the site secure and
functional over time.
1.7 Project Schedule
Chapter Start Date Finish Date
Introduction 10/3/2024 15/3/2024
Literature Review 20/3/2024 25/3/2024
Requirement Engineering 5/4/2024 15/4/2024
and Analysis
Architecture and Design 20/4/2024 25/4/2024
Implementation Plan 30/4/2024 15/5/2024
Conclusion and Results 16/5/2024 18/5/2024
Table [1.1]: Project Schedule
14
1.8 Report Organization
The rest of the report is organized as follows:
● Chapter 2 Literature Review.
● Chapter 3 Requirement Analysis.
● Chapter 4 Architecture and Design.
● Chapter 5 presents the IMPLEMENTATION PLAN.
● Chapter 6 presents the TESTING PLAN.
● Chapter 7 represents the CONCLUSION AND RESULTS.
15
CHAPTER 2: LITERATURE REVIEW
2.1 Introduction
In this chapter, we will talk about some applications and projects that are like
our project. What are the features that distinguish our project from another
project? What are the problems that they faced and what are our solutions to
these problems?
2.2 Existing Systems
1. [Link][1]: G2A is a website that functions as an online marketplace for
digital goods, with a focus on video games. They offer products from a large pool of
sellers, allowing for potentially discounted prices.
Figure [2.1]: G2A website pictures.
16
2. Z2U [2] : Z2U is a digital marketplace catering to gamers, offering a platform to
buy, sell, and trade virtual assets across a wide range of online games. It provides a
secure environment for transactions, with features like verification and escrow
systems, making it convenient for users to access virtual goods and services while
ensuring safety and reliability.
Figure [2.2]: Z2U website pictures.
[Link] [3]: Eneba entices budget-minded gamers with deep discounts on
digital games, gift cards, and even in-game currency. Their "always-on-sale"
approach, including flash sales and social media giveaways, can be attractive.
However, some user reviews whisper doubts about legitimacy. Before diving in, do
your digital due diligence: research Eneba's reputation, compare prices elsewhere,
and prioritize secure payment methods.
Figure [2.2]: Z2U website pictures.
17
2.3: Overall Problems of Existing Systems
1. Customer Support: Many users have voiced dissatisfaction with the
customer support services provided by these websites. They often encounter slow
response times, unhelpful assistance, and significant challenges in resolving disputes
or addressing issues related to transactions.
2. Payment Methods: Another notable drawback of these websites is the
absence of support for local payment methods such as Cliq or wallets like Zain Cash
and Orange Money. Additionally, the lack of cash on delivery services limits payment
options for users, potentially inconveniencing those who prefer or rely on these
methods.
3. Trust and Legal Challenges: Trust issues with dealers are prevalent across
these platforms, exacerbated by their multinational nature. This complicates legal
proceedings and enforcement, as jurisdictional boundaries and varying legal
frameworks make it challenging to prosecute dealers involved in illicit activities.
2.3 Overall Solution Approach
1. Customer Support: To address customer support issues, these websites
could invest in improving response times, training support staff to provide more
helpful assistance, and implementing efficient dispute resolution mechanisms to
ensure that user concerns are addressed promptly and satisfactorily.
2. Payment Methods: Solving the payment method dilemma involves
integrating support for local payment options like Cliq and Wallet, as well as
introducing cash on delivery services to cater to users who prefer these methods.
This would enhance convenience and accessibility for a broader range of users.
3. Trust and Legal Challenges: Overcoming trust and legal challenges requires
implementing stringent verification processes for dealers, enhancing transparency in
dealer transactions, and collaborating with legal authorities across jurisdictions to
develop strategies for prosecuting dealers engaged in illicit activities. Establishing
clear guidelines and enforcing compliance measures can help build trust and mitigate
legal risks for all parties involved.
18
CHAPTER 3: REQUIREMENT ENGINEERING ANALYSIS
Requirement analysis stands as the foundational pillar in project development. It
serves as the compass, guiding project direction by identifying, understanding, and
documenting needs, constraints, and objectives. This chapter delves into the
intricacies of requirement analysis, exploring methods to elicit, document, validate,
and manage requirements. From stakeholder engagement to refining and validating
needs, this chapter illuminates the crucial steps in ensuring project success through
comprehensive requirement analysis.
3.1 Stakeholders
• Buyers: Expect a user-friendly interface for easy navigation and access to a
wide range of gaming products. They seek accurate information on product
availability, pricing, and seller reputation to make informed purchasing decisions.
• Sellers: Require a platform that facilitates easy listing of products,
transparent transaction processes, and effective communication with buyers. They
rely on features such as seller ratings and feedback to establish credibility and attract
customers.
• Administrators:Responsible for overseeing the platform's operations,
administrators require tools and resources to maintain the integrity of the
marketplace. They monitor user activity, enforce platform policies, and address
technical issues to ensure smooth functioning and compliance with legal
requirements.
• Customer Service Representatives:
They play a crucial role in addressing user inquiries, resolving disputes, and
providing assistance with platform-related issues. They need comprehensive
19
information and efficient communication channels to deliver timely and satisfactory
support.
3.2 Use Case Diagram
FIGURE [3.1]: Use Case Diagram
20
Use case Login
Actor Buyer
Basic flow ● Enter email and password
● Authenticate Credentials
● redirect to store page
Table [3.2]: Login Basic flow.
Use case Feedback and reviews
Actor Buyer
● Enter Feedback
Basic flow
● Submit Feedback
● Receive Confirmation
Table [3.3]: Feedback and reviews Basic flow.
Use case Register
Actor Buyer
● Enter Registration Details
Basic flow
● Validate Information
● Create Account
● Receive Confirmation
Table [3.4]: Register Basic flow.
21
Use case Customer support
Actor Buyer
● Initiate Contact
Basic flow
● Describe Issue
● Receive Assistance
Table [3.5]: Customer Support Basic flow.
Use case Adding to Cart
Actor Buyer
● Select Product
Basic flow
● Specify Quantity
● Add to Cart
Table [3.6]: Adding to Cart Basic flow.
Use case Payment
Actor Buyer
● Select Payment Method
Basic flow
● Enter Payment Details
● Confirm Payment
● Receive Payment Confirmation
● redirect to customer support (if
applicable)
Table [3.7]: Payment Basic flow.
22
Use case Checkout Process
Actor Buyer
● Review Cart Items
Basic flow
● Select Shipping Method
● Enter Shipping Information
● Review Order Summary
● Proceed to Payment
Table [3.8]: Checkout Process Basic flow.
Use case Order Tracking
Actor Buyer
● Access Order Tracking Page
Basic flow
● Select The Order
● View Order Status
Table [3.9]: Order Tracking Basic flow.
Use case Login as a seller
Actor Seller
● Enter Email and Password
Basic flow
● Authenticate Credentials
● Redirect to Dashboard
Table [3.10]: login as a seller Basic flow.
23
Use case View Payments Received
Actor Seller
● Access Payment History
Basic flow
● View Received Payments
Table [3.11]: login View Payments Received Basic flow.
Use case Mange via admin panel
Actor Seller
● View Product List
Basic flow
● Add New Product
● Edit Existing Product
● Delete Product
● view status
● view reviews and rating
Table [3.12]: Manage via admin panel Basic flow.
Use case Customer Support
Actor Customer service team
● Receive Customer Inquiry
Basic flow
● Assign Ticket to Agent
● Investigate Issue
● Provide Solution
● Close Ticket
Table [3.13]: Customer Support Team Basic flow.
24
Use case Report
Actor Customer service team
● the issue is reported to the
Basic flow
customer service
● If the issue cannot be resolved
by Customer Service, a report is
prepared.
● The report is sent to the
Admins for further action.
Table [3.14]: support team Report Basic flow.
Use case Report
Actor Admin
● Admins receive the report
Basic flow
from Customer Service.
● Admins analyze the reported
issue.
● Admins make decision
● Admins may provide feedback
or updates to Customer Service
on the resolution progress.
Table [3.15]: Admin Report Basic flow.
25
3.3 Functional User Requirements
● User Registration and Profile Management :
- Users should be able to easily register for an account on the
platform.
- They should have the ability to manage their profiles, including
personal information, payment methods, and preferences.
● Browsing and Search Functionality :
- Users should be able to browse through a wide range of gaming
products and categories.
- They should have the ability to search for specific games or products
using filters and keywords.
● Product Listings and Descriptions :
- Sellers should be able to list their products for sale, including
detailed descriptions, images, and pricing.
- Users should be able to view comprehensive product information,
including key features, system requirements, and seller ratings.
● Purchase and Payment Processing :
- Users should be able to easily add items to their cart and proceed to
checkout.
- The platform should support various payment methods, including
credit/debit cards, PayPal, and other local payment options.
- Payment processing should be secure and efficient, ensuring the
confidentiality of user data.
26
● Order Management and Tracking :
- Users should have access to order history and tracking information for
their purchases.
- They should receive notifications and updates regarding the status of their
orders, including payment confirmation, shipment, and delivery.
● Seller Communication and Feedback:
- Users should be able to communicate with sellers regarding product
inquiries, support issues, or other concerns.
- The platform should facilitate feedback and rating mechanisms to
allow users to provide reviews and ratings for sellers and products.
● Customer Support and Dispute Resolution:
- Users should have access to responsive customer support channels,
including live chat, email support, and a knowledge base.
- The platform should provide mechanisms for resolving disputes
between buyers and sellers, such as mediation services or escalation
procedures
3.4 Non-Functional User Requirements:
● Performance:
- The platform should have fast loading times and responsive navigation to
provide a seamless browsing experience for buyers.
- Sellers should experience minimal latency when listing products or
communicating with buyers to ensure efficient operations.
27
● Reliability:
- The platform should be available and accessible to users consistently, with
minimal downtime and disruptions.
- Orders and transactions should be processed reliably, with minimal errors
or system failures.
● Security:
- User data should be securely stored and protected against unauthorized
access, ensuring confidentiality and privacy.
- The platform should implement robust measures to prevent fraudulent
activities, such as unauthorized transactions or counterfeit product listings.
● Usability:
- The platform should be accessible to users of all levels of technical
proficiency, with clear instructions and intuitive design elements.
- Sellers should find it easy to navigate the seller dashboard and manage
their listings effectively.
- Customer service representatives should have user-friendly tools and
interfaces to assist users efficiently.
● Scalability:
- The platform should be scalable to accommodate growing user traffic and
increasing numbers of products and transactions over time.
- It should be able to handle peak loads during high-demand periods, such
as sales events or new game releases, without performance degradation.
28
● Accessibility:
- The platform should be accessible to users with disabilities, complying
with accessibility standards and providing alternative navigation options, if needed.
- Content should be presented in a clear and understandable manner, with
options for font resizing and color contrast adjustments.
● Compliance:
- The platform should comply with relevant laws and regulations governing
e-commerce and digital goods trading, ensuring legal and ethical operations.
- It should adhere to industry standards and best practices for data
protection, privacy, and cybersecurity.
29
CHAPTER 4: ARCHITECTURE AND DESIGN
In the realm of software development, Architecture and Design serve as the
foundational framework and intricate blueprint for crafting functional, scalable, and
effective systems. Architecture lays out the structural blueprint and organizational
framework of the system, while Design delves into the specifics of how individual
components are implemented. These elements work in tandem to guarantee that
software solutions align with user requirements, technological constraints, and
scalability prerequisites. Through an iterative process of conceptualization,
fine-tuning, and execution, collaboration is encouraged, problem-solving is
facilitated, and the system's efficiency and adaptability are continually enhanced
over time.
4.1 Software (System) Architecture
4.1.1 Logical view
FIGURE [4.2]: Logical view Diagram.
30
4.2 Software design
4.2.1 UML sequence/communication diagram
FIGURE [4.3]: User Registration Sequence Diagram.
FIGURE [4.4]:Customer service Sequence Diagram.
31
FIGURE [4.5 ]: buying Sequence Diagram.
FIGURE [4.6] : Manage seller admin panel Sequence Diagram.
32
FIGURE [4.7]: JWT Diagram.
This diagram illustrates the process of handling HTTP requests with JWT
authentication in a web application.
1. Request Handling:The client sends a request (GET, POST, PATCH, DELETE).
2. Filter Chain: The request passes through a series of filters, including the
JwtAuthenticationFilter
3. Token Validation:
- JwtAuthenticationFilter checks if a token exists.
- JwtService validates the token.
- If the token is invalid, a TokenInvalidException` is thrown.
- If valid, UserDetailsService retrieves user details using the token's information.
- If the user is not found, a UserNotFoundException` is thrown.
4. Authentication: Valid token and user details are stored in the
SecurityContextHolder.
5. DispatcherServlet: Processes the request based on the authenticated user and
routes it to the appropriate controller.
[Link]: The controller sends a response back to the client.
33
4.2.2 Class diagram
FIGURE [4.8] : Class Diagram:
34
4.2.3 Database Logical View Diagram:
FIGURE [4.9] : Database Logical View Diagram:
35
CHAPTER 5: IMPLEMENTATION PLAN
5.1 Description of Implementation
This subsection of the Project Implementation Plan describes Solution in
more details. Describes how the information system will be deployed, installed and
transitioned into an operational system. It contains a brief description of the major
tasks and components involved in the implementation, the overall resources needed
to support the implementation effort (such as hardware, software. facilities,
materials, and personnel), and any site-specific implementation requirements.
5.2 Programming language and technology
1. Flutter [4]: Developed with Flutter and Dart, CodeStation store
features a single codebase for both iOS and Android. Flutter's hot reload
accelerates development, and its rich widget set ensures a customizable,
high-performance UI. Real-time data, Firebase authentication, map integration,
and offline support enhance user experience. Unit testing ensures reliability, and
cross-platform deployment simplifies distribution on app stores.
2. Dart [5]: Using Dart for CodeStation store enables a streamlined,
object-oriented development process. Dart's features, like strong typing and
JIT compilation, enhance code efficiency. Real-time data handling,
asynchronous programming, and integration with Flutter create a responsive
and dynamic user interface. Dart's versatility extends to implementing features
such as user authentication, offline support, and seamless deployment across
platforms.
3. Spring Framework[6]: Spring Framework is a comprehensive and
widely adopted framework for building enterprise Java applications. It
provides a modular and flexible architecture, offering support for various
components such as dependency injection, aspect-oriented programming,
and transaction management. One of the key features of Spring is its
lightweight and non-intrusive nature, allowing developers to focus on
36
business logic without being tied to specific APIs or implementations. Spring
Boot, a part of the Spring ecosystem, simplifies the setup and configuration of
Spring applications by providing convention-over-configuration and
auto-configuration capabilities. It streamlines the development process by
reducing boilerplate code and offering embedded servers for quick
deployment. With its extensive ecosystem, including Spring Data, Spring
Security, and Spring Cloud, Spring Framework empowers developers to build
robust, scalable, and maintainable Java applications across various domains,
from web development to microservices architecture.
4. GitHub [7]: GitHub offers efficient version control, collaborative
development, and centralized code hosting. It supports branching, merging,
issue tracking, and pull requests for organized and high-quality code
contributions. GitHub's project management tools, documentation features,
and integration with CI tools streamline development. Its active community
fosters open-source collaboration and provides insights into project history. By
using GitHub for Basii we have enhance code management, collaboration,
and project visibility.
5. Android Studio [8]: is the official IDE for Android development,
offers a feature-rich environment tailored for creating high-quality Android
apps. Its visual layout editor simplifies UI design, an intelligent code editor
aids in efficient coding, and the built-in emulator ensures comprehensive
testing. With seamless integration of Firebase, version control support, and
regular updates from Google, Android Studio provides a robust and supportive
platform for developing and maintaining your bus transport app.
6. HTML [9]: is a standard markup language used to create and structure
the content of web pages. It is a fundamental language for web development,
providing a robust foundation for creating well-structured, accessible, and
compatible web pages. Its integration with CSS and JavaScript, support for
SEO, and adherence to web standards make it an essential part of modern web
development.
37
7. CSS (Cascading Style Sheets) [10]: is crucial in web development,
defining the visual presentation of HTML content. It enables the creation of
aesthetically pleasing and responsive designs. With CSS, developers achieve
consistency across pages, ensure browser compatibility, and facilitate efficient
updates. This separation of styling and content enhances code maintainability.
CSS also supports animations and interactivity, offering dynamic elements.
Moreover, external CSS files can be cached, optimizing load times for
improved website performance.
8. Typescript[11]: TypeScript is a superset of JavaScript that adds optional
static typing and other features to the language. Developed and maintained by
Microsoft, TypeScript aims to address some of the shortcomings of JavaScript
by introducing features like type annotations, interfaces, generics, and more.
One of the main benefits of TypeScript is its ability to catch errors at
compile-time, thus improving code quality and reducing bugs in large-scale
applications. TypeScript code can be compiled down to plain JavaScript,
making it compatible with all JavaScript environments. It also offers great
tooling support, including syntax highlighting, code completion, and
refactoring capabilities in popular integrated development environments
(IDEs) such as Visual Studio Code. TypeScript is increasingly popular for
building complex web applications, especially those using modern front-end
frameworks like Angular, React, and [Link], as well as for server-side
development with [Link]. Its combination of static typing and JavaScript's
flexibility makes it a powerful choice for developers looking to write safer and
more maintainable code.
9. Visual Studio Code [12]: is a versatile and lightweight Integrated
Development Environment (IDE) that supports various programming
languages. With intelligent code editing features, a robust extensions
ecosystem, and an integrated terminal, it streamlines development tasks. Its
cross-platform compatibility, free and open-source nature, and active .
11. React [13]: React is a JavaScript library for building user interfaces,
known for its component-based architecture and efficient rendering with the
virtual DOM. It promotes a declarative programming style and utilizes JSX for
writing HTML-like code within JavaScript. React's ecosystem includes tools
38
like React Router and Redux, making it a popular choice for front-end
development, especially for creating interactive and dynamic web
applications.
12. Tailwind CSS[14]:
Tailwind CSS is a utility-first CSS framework that provides a set of
pre-designed utility classes to streamline the process of building user
interfaces. Unlike traditional CSS frameworks that come with predefined
components, Tailwind CSS focuses on providing low-level utility classes that
can be combined to create custom designs without writing custom CSS. These
utility classes cover a wide range of styling properties, such as spacing,
typography, colors, and more, allowing developers to rapidly prototype and
style their applications.
Tailwind CSS promotes a responsive and scalable approach to styling, making
it easy to create consistent designs across different screen sizes and devices. It
also encourages a modular and maintainable codebase by promoting the
composition of small utility classes rather than large, monolithic stylesheets.
One of the key advantages of Tailwind CSS is its flexibility and customization
options. Developers can easily extend or customize the default utility classes
to match the specific design requirements of their projects. Additionally,
Tailwind CSS integrates seamlessly with modern front-end frameworks like
React, [Link], and Angular, making it a versatile choice for building user
interfaces across different tech stacks.
Overall, Tailwind CSS offers a pragmatic and efficient approach to CSS
styling, empowering developers to create beautiful and responsive designs
with minimal effort.
13. MongoDb[15]: React is a JavaScript library for building user interfaces,
known for its component-based architecture and efficient rendering with the
virtual DOM. It promotes a declarative programming style and utilizes JSX for
writing HTML-like code within JavaScript. React's ecosystem includes tools
like React Router and Redux, making it a popular choice for front-end
development, especially for creating interactive and dynamic web
applications.
39
14. PostgreSQL[16]: PostgreSQL is an advanced, open-source relational
database management system (RDBMS) known for its robustness, scalability,
and adherence to SQL standards. It supports both SQL and JSON querying,
providing flexibility for various use cases. PostgreSQL is designed to handle a
wide range of workloads, from single machines to data warehouses or web
services with many concurrent users. Key features include ACID compliance,
complex queries, foreign keys, triggers, and updatable views. Its extensibility
allows for custom functions, data types, and operators, making it a preferred
choice for developers needing a powerful, versatile database solution.
PostgreSQL's ecosystem includes tools for backup, replication, and
performance tuning, enhancing its reliability and performance in production
environments.
40
5.3 part of implementation if possible
Figure [5.1]:User Cart Functions.
Display parts of the code for the User Cart functions.
Figure [5.2]:Security Configuration File..
Display parts of the code for the Security Configuration file.
41
Figure [5.3]:Item Controller File.
Display parts of the code for the Item Controller file.
Figure [5.4]: The Email Verification Code.
Display parts of the code for generating the email verification code.
42
CHAPTER 6: TESTING PLAN
In the world of software development, the Testing Plan is the linchpin ensuring the
reliability and quality of a product. This chapter serves as your guide into the
structured approach of validating software functionality of Basii app. It navigates
through the core elements of testing methodologies, objectives, test case formulation,
data management, and the crucial integration of automated tools. By the end of this
chapter, you'll grasp the essentials needed to craft and execute a robust Testing Plan,
vital for delivering impeccable software solutions.
6.1 Black-box
This type of testing focuses on the behavior of the app and check if the app gives the
right results and do what it intends to do. Using the flutter platform allows us to test
the app.
Areas of Focus:
1. Password Validation:
· Inspect the code to ensure password validation rules are implemented
correctly (e.g., minimum length, special characters).
2. Email Validation:
· Verify that the email validation logic is correctly implemented (e.g.,
checking for valid email format).
3. Error Handling:
· Check how error scenarios are handled within the code (e.g., proper
error messages, exception handling).
4. Code Coverage:
· Use code coverage tools to ensure all branches of the registration code
(if-else conditions, loops) are covered by tests.
Example:
43
1. Password Length:
· Test if passwords below or above the specified length are handled
correctly.
2. Email Validation Logic:
· Ensure the code properly validates the email format (e.g., contains
"@" and domain).
3. Code Paths Testing:
· Test different conditions within the registration code (e.g., different
if-else conditions) to ensure all paths are covered.
6.2 White-box
This section focuses on the code , Concern with how functionality is implemented,
Design patterns and data structure ,By dividing this process into two levels, The first
level focuses on each unit ,and the other focuses on the app.
Test Scenarios:
1. Validate Registration:
Verify the user registration with code sent to the email.
Figure [6.1]: Account Activation.
2. Invalid Input Handling:
· Test registration with invalid or missing data (e.g., no email, incorrect
password format, missing name).
3. Duplicate Email Handling:
44
· Test if the system correctly identifies and handles attempts to register
with an existing email.
4. Confirmation Message or Email:
· Check if users receive a confirmation message or email upon
successful registration.
Example:
A. Validate User Registration:
Input: Validate email, password, and name.
Expected Outcome: Successful registration with a confirmation
message/email.
B. Invalid Email Format:
Input: Incorrect email format.
Expected Outcome: Error message indicating invalid email format.
C. Duplicate Email:
Input: Email that already exists in the database.
Expected Outcome: Error message stating that the email is already registered.
6.3 Testing automation
- We used the android studio to test the app.
- The cases that we based on it to do the automation testing:
- Test case executed with different phones.
- Test case executed with different environments.
- Test case executed with a different set of users.
- Test case executed with a different set of information.
45
CHAPTER 7: CONCLUSION AND RESULTS
7.1Conclusion and Results:
In summary, the project focused on developing an e-commerce platform tailored
for digital products, aiming to provide customers with a seamless and secure
shopping experience while offering convenience and accessibility. Throughout
the development process, several key challenges were addressed, including the
need to integrate both global and local payment gateways to cater to diverse
customer preferences.
The primary goal of the project was to overcome these challenges and deliver a
robust e-commerce solution capable of handling digital product sales efficiently.
By incorporating trusted payment gateways such as PayPal, Stripe, and local
methods like Cliq and Zain Cash, the platform ensures secure transactions and
instills confidence in customers during the checkout process.
Furthermore, the project emphasized user interface design, product
management, order processing, and security measures to enhance the overall
user experience and protect customer data. Thorough testing and quality
assurance were conducted to identify and address any issues, ensuring that the
platform functions smoothly across different devices and browsers.
Overall, the accomplished project not only addresses the immediate need for an
e-commerce platform for digital products but also lays the foundation for future
growth and expansion. By providing a user-friendly interface, diverse payment
options, and robust security features, the platform is well-positioned to attract
and retain customers, drive sales, and establish a strong online presence in the
digital marketplace.
46
7.2Future Work:
While the current project has successfully developed and launched the
e-commerce platform for digital products, there are several areas for potential
future enhancements and expansions. Some suggestions for future work include:
[Link] Marketing and SEO Strategies: Implementing advanced marketing
techniques and search engine optimization strategies to increase visibility and
attract more traffic to the platform.
[Link] Product Catalog: Continuously updating and expanding the range of
digital products offered on the platform to cater to evolving customer
preferences and market demands.
[Link] and Customer Engagement: Incorporating features for
personalized recommendations, targeted promotions, and interactive
engagement to enhance the overall customer experience and foster long-term
loyalty.
[Link] Expansion: Exploring opportunities to expand the platform's reach
beyond the local market and cater to a broader audience by supporting multiple
languages, currencies, and shipping options.
[Link] with Emerging Technologies: Staying abreast of emerging
technologies such as AI, AR/VR, and blockchain to explore innovative ways to
enhance the platform's functionality, security, and user experience.
By continuously iterating and improving upon the existing platform while
exploring new avenues for growth and innovation, the project can remain
competitive and adaptive in the dynamic landscape of digital commerce.
47
REFERENCES
All listed alphabetically according to the first author.
[1] G2A store : G2A..com
[2] Z2u store: [Link]
[3] Eneba store : [Link]
[4] Flutter : [Link]
[5] Dart : [Link]
[6] Spring framework : [Link]
[7] GitHub : [Link]
[8] Android Studio : [Link]
[9] HTML : [Link]/html
[10] CSS (Cascading Style Sheets) : [Link]/css
[11] Typescript : [Link]
[12] Visual Studio Code : [Link]
[13] React : [Link]
[14] Tailwind CSS : [Link]
[15] MongoDb : mongodb
[16] PostgreSQL : postgresql
48