Project theme:
Freelance platform
Authors: Kazeev Danil, Begasilov Amirzhan
Group: IT2-2411SE
Revieved by: Yemberdiyeva A. B.
Almaty, 2025
0
Description
This project is an online freelance exchange platform designed for interaction between customers
and freelancers. The main idea is to create a convenient, secure and intuitive space where
customers can post tasks, describing their needs and budget, and freelancers can independently
search for and respond to orders they are interested in. Unlike some other exchanges, where the
invitation of freelancers by the customer dominates, the emphasis here is on the initiative of the
performers, which allows them to choose projects based on interest, skills and deadlines. The
goal of the project is to bring together specialists and customers on one platform, promote
effective and transparent interaction between them, simplify job search for freelancers and solve
problems for clients.
Requirement Analysis:
Defining user roles:
Freelancers - create a profile, look for orders, perform work, get paid.
Customers - publish tasks, choose freelancers, pay for services.
Administrator - controls the platform.
Tech support - solving disputes and problems.
Definition of key features:
Secure transactions
Rating system + reviews.
Ability to publish offline orders
Smart search by skills
Technology stack selection:
Backend: Python, HTML, CSS, JavaScript,
Database: PostgreSQL.
Payments: Kaspi KZ, PayPal, cryptocurrencies.
Design:
Definition of architecture,
Prototyping,
Freelancer profile design,
Order page and filters,
Payment interface.
1
Realization:
Frontend development.
Backend development.
Configuring the database.
Implementation of user authorization and authentication.
Configuring payments methods
Testing:
Automatic and manual testing
Safety tests
Deployment and Maintenance
Test server for debugging.
Beta release (limited access).
Full-fledged launch.
Picture 1. Agile SDLC model Diagram
In our project, we chose Agile SDLC model because:
Flexibility – Agile allows you to make changes at any stage of development. Projects like
freelance exchanges can always have new ideas and requirements that are easier to implement in
a flexible model.
Quick Releases – You can launch a minimally viable product (MVP) and refine it as you receive
feedback from users.
Risk management – If some part of the system is not working as expected, it can be fixed quickly
in Agile. Waterfall would have to wait for the end of the entire development cycle.
Feedback – You will be able to test the functionality, receive feedback and adjust the platform
without a long wait.
2
Priority of important functions – You can first develop the main functions (registration, order
creation, search and filtering), and then add secondary ones (rating, chat, notifications).
Phases:
Planning → 2. Requirement Analysis → 3. Design → 4. Implementation → 5. Testing → 6.
Deployment & Maintenance → 7. Repeat for new features
Advantages:
High flexibility to changing requirements.
Faster delivery of functional components.
Continuous feedback and improvement.
Disadvantages:
Requires active collaboration.
Difficult to predict final costs and timeline.
Documentation may be less detailed.
Identify Potential Risks
One of the stages of development is to identify potential risks.
Risk Category Description
Server Downtime Technical Risk Unexpected server failures
may disrupt platform
availability, causing user
dissatisfaction.
Cybersecurity Threats Security Risk The platform may be
vulnerable to hacking, data
breaches, or phishing attacks.
Unclear Requirements Operational Risk Changing or unclear
requirements from
stakeholders can delay
development.
Missed Deadlines Schedule Risk Development tasks may take
longer than planned, delaying
the launch.
Payment Processing Issues Technical Risk Integration with payment
systems (Kaspi KZ, PayPal)
may fail, leading to payment
delays.
Low User Adoption Operational Risk Freelancers and customers
may not actively join the
platform, requiring better
marketing.
Scams and Fraud Security Risk Fake freelancer or customer
accounts may attempt to scam
users, harming platform trust.
3
Table 1. Identification of Potential Risks of a freelance exchange project
This table contains a list of possible risks associated with the development and operation of a
freelance platform. Each risk is classified into an appropriate category (technical, operational,
temporary, or safety-related), and a brief description of the potential consequences is provided
for each of them. Server Downtime (Idle Server)
Category: Technical risk
Description: Unexpected server failures can lead to the unavailability of the platform. This will
cause dissatisfaction among users, lead to a loss of trust, and possibly an outflow of both
freelancers and customers. The reasons may be problems with hosting, system overload, or errors
in the code.
Cybersecurity Threats
Category: Security risk
Description: The platform can become a target for hackers, phishing attacks or data leaks. A
security breach can lead to the theft of users' personal and financial information, which will
cause serious damage to their reputation and may have legal consequences.
Unclear Requirements
Category: Operational risk
Description: If the requirements from stakeholders are constantly changing or initially poorly
formulated, this can slow down the development process. The team may waste resources on
unnecessary improvements, and the final product will not meet expectations.
Missed Deadlines
Category: Chart Risk
Description: Development tasks may take longer than planned, which will delay the launch of
the platform. This can affect the overall project budget, team motivation, and marketing plans.
Payment Processing Issues (Problems with payment processing)
Category: Technical risk
Description: Integration with payment systems (for example, Kaspi KZ, PayPal) may not work
properly. This will lead to delays in payments, lower user confidence, and the risk of financial
disputes between the parties.
Low User Adoption (Low number of users)
Category: Operational risk
Description: Freelancers and customers may not be interested in the platform or prefer
competitors. This may be due to a weak marketing strategy, an inconvenient interface, or the lack
of a unique offer. The solution will require improved marketing and user experience.
Scams and Fraud
Category: Security risk
Description: Fake accounts of freelancers or customers may appear on the platform, which will
try to deceive other users. This undermines trust in the platform, especially if the verification or
moderation system is not reliable enough.
Prioritize the Risks
Risk Likelihood Impact Priority Level
Server Medium High High
Downtime
Cybersecurity High High High
Threats
4
Unclear Medium Medium Medium
Requirements
Missed High Medium High
Deadlines
Payment Meduim High Hight
Processing
Issues
Low User High High High
Adoption
Scams and High Medium High
Fraud
Table 2. Assessment of Potential Risks of a freelance exchange project.
This table provides a quantitative assessment of previously identified risks by three parameters:
Likelihood, Impact, and Priority Level. Such an assessment helps to determine which risks
should be prioritized to prevent or mitigate the consequences. The risk levels are classified as
Low, Medium and High.
Server Downtime (Idle Server)
Probability: Medium
Impact: High
Priority: High
Rationale: Server failures are possible, especially in the early stages. Since they directly affect
the availability of the platform, the priority remains high.
Cybersecurity Threats (Cyber Threats)
Probability: High
Impact: High
Priority: High
Rationale: High threat of cyber attacks in the presence of personal data and financial
transactions. It requires serious protection.
Unclear Requirements
Probability: Medium
Impact: Medium
Priority: Medium
Rationale: Depends on the level of interaction with stakeholders. It can be solved with good
documentation and communication.
Missed Deadlines
Probability: High
Impact: Medium
Priority: High
Rationale: The complexity of the implementation and limited resources may lead to delays. This
is especially critical at the launch stage.
Payment Processing Issues (Problems with payment processing)
Probability: Medium
Impact: High
Priority: High
Rationale: Even if the probability is small, the consequences are significant. Any delays in
payments undermine the trust of users.
Low User Adoption (Low number of users)
5
Probability: High
Impact: High
Priority: High
Rationale: The platform is meaningless without users. Especially critical at the start. We need
investments in marketing and UX.
Scams and Fraud (Fraud and deception)
Probability: High
Impact: Medium
Priority: High
Rationale: Fraudulent activities can occur frequently, especially without a verification
system. Protection and moderation measures need to be implemented quickly.
Risk mitigation strategies
Risk Mitigation Strategies
Implement server redundancy, use cloud-based solutions, and conduct
Server Downtime
regular maintenance.
Cybersecurity Use strong encryption, implement multi-factor authentication, and
Threats conduct regular security audits.
Unclear Maintain clear documentation, hold regular stakeholder meetings, and
Requirements use agile methodologies.
Use project management tools, set realistic deadlines, and follow agile
Missed Deadlines
sprints.
Payment Processing Partner with reliable payment gateways, test integrations thoroughly,
Issues and provide alternative payment options.
Implement targeted marketing campaigns, offer promotions, and ensure
Low User Adoption
a user-friendly experience.
Introduce identity verification, monitor suspicious activities, and
Scams and Fraud
provide a robust reporting system.
Table 3. Risk Mitigation Strategies for the freelance exchange project
This table contains a list of key risks that may arise during the development and operation of a
freelance platform, as well as strategies to minimize them. The goal is to identify effective
actions in advance that will help reduce the likelihood of risks or mitigate their impact on the
project. These measures cover both technical and operational aspects: server stability, security,
team organization, user engagement, and fraud protection. The use of these strategies will ensure
the stability of the platform, increase user trust, and ensure the successful launch and
development of the service.
6
Actors and Use Cases
Freelancers
Create a Profile – Register and set up a professional profile.
Look for Orders – Browse available tasks posted by customers.
Contact with Customers – Communicate with customers regarding work details.
Perform Work – Complete assigned tasks.
Get Paid – Receive payments for completed work.
Customers
Publish Tasks – Post jobs or projects that require freelancers.
Choose Performers – Select suitable freelancers for tasks.
Pay for Services – Process payments for completed work.
Request Refunds or Dispute Resolution – Raise concerns about work quality or payment issues.
Leave Reviews and Ratings – Provide feedback on freelancer performance.
Administrators
Manage User Accounts – Oversee freelancer and customer accounts.
Control the Platform – Ensure smooth operation of the system.
Monitor Platform Performance – Track system health and performance.
Generate Reports – Create analytics on user activity and platform efficiency.
Tech Support
Contact with Community – Assist users with inquiries.
Solve Disputes and Problems – Help resolve technical or transactional issues.
Provide Technical Assistance – Support users with technical issues.
Maintain System Updates – Keep the platform updated and secure.
We will show it in the Use Case diagram below.
7
Picture 2. Use Case Diagram.
The usage case diagram for the freelance exchange shows the main interactions between the four
main types of users of the platform — freelancers, customers, administrators, and technical
support — and the system. Each user group has its own set of actions (use cases) that they can
perform on the platform, reflecting their roles and responsibilities in the ecosystem of the
service.
Picture 3. UML sequence diagram. Freelancer responds to an order
8
The sequence diagram "Freelancer Responds to an Order" describes the interaction process
between components of a freelance platform when a freelancer responds to a job order. The
scenario begins with the freelancer submitting a response through the user interface. The
interface receives this response and forwards it to the server. Once the server receives the data, it
initiates the process of saving the response to the database. After successful storage, the server
sends a confirmation back to the interface, which then notifies the freelancer that the response
has been successfully sent. The process involves four main components: the freelancer (user), the
interface (client application), the server (business logic), and the database (data storage). Each
interaction between these components represents a step in handling the user's action, starting
from the response initiation to the final confirmation. This diagram helps visualize the system
architecture, identify key data exchange points, and simplify further development and testing of
the functionality.
Picture 4. UML-state machine diagram: order processing
The status diagram describes the lifecycle of the "Order" object on the freelance platform from
the moment of creation to the completion of payment. The initial state is designated as the
starting point, from where the order switches to the "Created" state after publication by the
customer. Next, when a freelancer is selected, the order switches to the "Contractor selected"
state. When the freelancer starts the execution, the order goes into the "In progress" state. After
completing the work and sending it, the order is assigned the status "Completed". The customer
then confirms the payment, and the order enters the final "Paid" state, after which it is considered
fully completed. Each state reflects a specific stage of order processing, and transitions between
them occur in response to certain user or system actions.
9
Picture 5. Сomponent diagram for Freelance platform
This component diagram the architecture of a freelance platform, divided into three main layers:
the client interface, the server (backend) part, and the data storage layer (databases).
On the client's side, there is a Web Interface component, which is a web user interface through
which freelancers and clients interact with the system - they log in, publish or respond to orders,
make payments and receive notifications.
The server part consists of 4 main components:
Auth Service is responsible for user registration and authorization. This component
interacts with the User database (User DB) to store and verify credentials.
Order Service — manages all logic related to orders: publication, responses, assignment
of performers and completion of work. It accesses the order database (Order DB) to read and
write information about orders.
Payment Service — processes payments between the client and the freelancer. It stores
transaction data in the Payment DB.
Notification Service — responsible for sending notifications (for example, by mail or in
the interface) using user data from the User DB.
All server components interact with the client interface: the Web Interface directs
requests to the appropriate services — authorization, orders, payment, and notifications. Each of
these services, in turn, exchanges data with the necessary database storing the relevant
information.
Thus, the diagram demonstrates the modular structure of the system, where each component
performs a strictly defined role, ensuring scalability, ease of support and extensibility of the
platform.
10
Picture 6. UML-activity diagram
This UML activity diagram illustrates the complete user journey on a freelance platform from
both freelancer and customer perspectives, beginning with accessing the website and ending with
job completion and feedback. The flow begins when a user opens the website. The system then
checks if the user has an existing account: If no account exists, the user is prompted to register.
If an account exists (or once registered), the user proceeds to log in. After logging in, the system
determines whether the user is a freelancer or a customer: A freelancer proceeds to choose an
order and respond to it. Once accepted, the freelancer starts the work. A customer begins by
creating and submitting a new order, followed by choosing a freelancer to complete it. Once a
freelancer is working on a task, the system evaluates whether the work is completed: If the work
is not yet completed, the customer can choose whether to extend the deadline. If the work is
completed, the freelancer submits it to the customer. The customer then reviews the result and
proceeds to make payment for the job. The freelancer receives the payment, and the process
11
concludes when the customer writes feedback. This activity diagram provides a clear view of all
user interactions within the platform, including login logic, role-based actions, and the flow of a
freelance order from creation to final feedback. It is especially useful for understanding system
behavior and planning backend logic, UI flow, and user role management.
Picture 7. UML Class Diagram
The UML class diagram presents the main static structure of the freelance platform. The diagram
consists of core entities such as User (abstract), Freelancer, Customer, Order, Response,
Payment, Review, and Notification. The User class is inherited by Freelancer and Customer,
reflecting shared attributes and methods. Orders are created by Customers and linked to
Freelancers through Responses. Payments, Reviews, and Notifications are associated with
Orders and Users accordingly. This structure helps visualize object relations and supports future
database design and development.
Conclusion
In this project, we developed a freelance platform that helps customers and freelancers find each
other in a convenient and secure way. We used the Agile approach so that changes and
improvements can be made at any time.
We planned the main functions: user registration, task posting, freelancer responses, payments,
and reviews. We also built the architecture from separate components to make the project easier
to support and expand in the future.
12
We thought in advance about possible risks, created UML diagrams, and chose suitable
technologies. In the future, we can add new features — like multi-language support or smart task
recommendations. The project turned out to be practical and realistic, and it can be used as a
base for a real web service.
13