Ragul Projectf DFD
Ragul Projectf DFD
Ragul Projectf DFD
Submitted by
RAGUL M
(Reg.No.2122K0543)
APRIL - 2023
Department of Computer Science
KPR COLLEGE OF ARTS SCIENCE AND RESEARCH
(Affiliated to the Bharathiar University, Coimbatore)
CERTIFICATE
This is to certify that this project report entitled
FREELANCERS COLLABORATION PLATFORM
Is a Bonafide record of project work done by
RAGUL M
(Reg. No.2122K0543)
In a deep sense of gratitude, I express my most sincere thanks to our beloved Principal
Dr. P. GEETHA, KPR College of Arts Science and Research, Coimbatore and the
management of my college for providing all the necessary facilities to carry out this project.
RAGUL M
CERTIFICATE ii
ACKNOWLEDGEMENT iii
1. INTRODUCTION 2
3. SYSTEM DESIGN 13
3.1 File design 13
3.2 Input Design 14
3.3 Output Design 15
3.4 Database Design 16
3.5 System Development 18
6. CONCLUSION 26
BIBLIOGRAPHY 28
APPENDICES
The Freelancer Collaboration Platform is a special website that brings freelancers together to
work on projects. Imagine you're a freelancer, someone who works on different jobs without
being tied to one company. Sometimes, freelancers work alone, but other times, they need
help from others to finish a project. That's where the Freelancer Collaboration Platform
comes in! It's like a virtual meeting place where freelancers can find partners, talk about
projects, and get things done together.What's cool about the Freelancer Collaboration
Platform is that it's super easy to use. You can chat with other freelancers in real-time, share
files, and even set up tasks to keep track of what needs to be done. Plus, it's completely free
for anyone to sign up and start using. Whether you're a graphic designer, a writer, or a coder,
this platform has something for everyone. It's all about making freelancers' lives easier and
helping them succeed in their work.But the best part about the Freelancer Collaboration
Platform is the sense of community it creates. Freelancers from all over the world come
together to share ideas, help each other out, and celebrate their successes. It's like being part
of a big team, even if you're working on your own projects. So, if you're a freelancer looking
for support, collaboration, and new opportunities.
The Freelancer Collaboration Platform, your gateway to a world of collaboration, creativity, and
community in the freelance industry! In today's fast-paced world, more and more people are choosing
to work as freelancers, offering their skills and expertise on a project-by-project basis. While
freelancing offers flexibility and independence, it can also be challenging to find partners, manage
projects, and stay connected with others in the field. That's where GigBuddies, our dedicated platform,
comes into play.
GigBuddies is the beating heart of the Freelancer Collaboration Platform, serving as a dynamic online
space where freelancers can connect, collaborate, and thrive. As the name suggests, GigBuddies pairs
freelancers together, helping them find like-minded professionals to collaborate with on various
projects. Through GigBuddies, freelancers can explore new opportunities, expand their networks, and
embark on exciting ventures alongside trusted partners.
At the core of GigBuddies is our unwavering commitment to fostering a sense of community and
collaboration among freelancers. We believe that by harnessing the power of collective talent and
creativity, freelancers can achieve greater success and fulfillment in their work. Whether you're a
seasoned freelancer or just starting out, GigBuddies offers a range of features and tools to support you
on your freelance journey.
So, whether you're looking for a partner for your next project, seeking advice from experienced
freelancers, or simply want to connect with like-minded individuals, GigBuddies is here to help you
thrive. Join us on this exciting journey as we redefine the way freelancers collaborate and succeed in
the digital age.
Mayugam InfoTech is the leading global supplier of quality solutions for advanced software
development and we hold certain commitments, to achieve the benchmark status of a global
provider of high-quality IT solutions and products. By providing integrated best-of- breed
solutions and professional excellence for the end-to-end software development life cycle,
Mayugam InfoTech enables organizations to improve quality and predictability, while
reducing time- to market and overall cost.
Our team provides knowledge and expertise in training and implementation, project
management, prototyping and product development to ensure optimal usage of our products
and efficient development of our customers' applications. Our solutions and experts enable
companies to work faster, cheaper, and smarter. Our professionals are highly skilled at
implementing our products and solutions, integrating and resolving technical issues as they
arise.
"We shall deliver information technology products and services that meet the needs of our
clients and achieve the highest level of customer satisfaction."
"To provide expert solutions for integrating people and technology, and to ensure our clients
success by arming them with powerful, intelligent, superior analytical applications and
products, comprising our technology solutions and services"
Front - End
HTML
Hypertext Markup Language (HTML) is the standard markup language for creating
web pages and web applications. With Cascading Style Sheets (CSS) and JavaScript it forms
a triad of cornerstone technologies for the World Wide Web.
Web browsers receive HTML documents from a web server or from local storage and
render them into multimedia web pages. HTML describes the structure of a web page
semantically and originally included cues for the appearance of the document.
HTML elements are the building blocks of HTML pages. With HTML constructs,
images and other objects, such as interactive forms, may be embedded into the rendered page.
It provides a means to create structured documents by denoting structural semantics for text
such as headings, paragraphs, lists, links, quotes and other items. HTML elements are
delineated by tags, written using angle brackets. Tags such as <img /> and <input />
introduce content into the page directly. Others such as <p>...</p> surround and provide
information about document text and may include other tags as sub-elements. Browsers do
not display the HTML tags but use them to interpret the content of the page.
HTML can embed programs written in a scripting language such as JavaScript which
affect the behavior and content of web pages. Inclusion of CSS defines the look and layout of
content. Designed to be usable by all Open Web developers, this reference page links to
numerous resources about HTML5 technologies, classified into several groups based on their
function.
CSS is the language for describing the presentation of Web pages, including colors,
layout, and fonts. It allows one to adapt the presentation to different types of devices, such as
large screens, small screens, or printers. The separation of HTML from CSS makes it easier
to maintain sites, share style sheets across pages, and tailor pages to different environments.
This is referred to as the separation of structure from presentation.
CSS is used to define styles for your web pages, including the design, layout and
variations in display for different devices and screen sizes. The style definitions are normally
saved in external .css files. With an external style sheet file, you can change the look of an
entire website by changing just one file.
A CSS rule-set consists of a selector and a declaration block: Syntax of css: h4 {color:
red; font-size: 22px}. The selector points to the HTML element you want to style. The
declaration block contains one or more declarations separated by semicolons. Each
declaration includes a CSS property name and a value, separated by a colon. A CSS
declaration always ends with a semicolon, and declaration blocks are surrounded by curly
braces.
Bootstrap is a free and open-source front-end web framework for designing websites
and web applications. It contains HTML- and CSS-based design templates for typography,
forms, buttons, navigation and other interface components, as well as optional JavaScript
extensions. Unlike many web frameworks, it concerns itself with front-end development
only.
Server-side Scripting
PHP
PHP code may be embedded into HTML or HTML5 markup, or it can be used in
combination with various web template systems, web content management systems and
web frameworks. PHP code is usually processed by a PHP interpreter implemented as a
module in the web server or as a Common Gateway Interface (CGI) executable. The web
server software combines the results of the interpreted and executed PHP code, which may
be any type of data, including images, with the generated web page. PHP code may also be
executed with a command-line interface (CLI) and can be used to implement standalone
graphical applications. PHP has been widely ported and can be deployed on most web
servers on almost every operating system and platform, free of charge.
In the realm of freelance work, platforms such as Fiverr and Upwork have long been the go-to
destinations for both freelancers and clients seeking services. These marketplaces serve as
centralized hubs where freelancers can showcase their skills and connect with potential clients,
streamlining the process of finding work and collaborating on projects.
Within these platforms, freelancers create profiles to showcase their expertise and services, while
clients post projects or browse listings to find suitable freelancers for their needs. Communication
and project management tools provided within the platforms facilitate smooth collaboration
between freelancers and clients, ensuring projects are completed efficiently and effectively.
Despite their popularity and usefulness, freelancer marketplaces also come with their own set of
challenges. Freelancers often face stiff competition from a vast pool of talent, making it
challenging to stand out and secure projects. Additionally, some freelancers may encounter issues
such as high platform fees and difficulties in establishing long-term relationships with clients.
2.1.1 DRAWBACKS
Fees: These sites charge fees for using their services, like taking a bit of the money
freelancers make. These fees can eat into what freelancers earn, making it harder to make
a living.
Less Control: Freelancers don't always get to decide how they work or when they get
paid. They have to follow strict rules set by the sites, which can be frustrating.
Fewer Repeat Jobs: It's hard for freelancers to find clients who keep hiring them for more
work. Most clients just need someone for one job, so freelancers have to keep looking for
new gigs.
FREELANCERS COLLABORATION PLATFOR 10
MRAGUL M – 2122K0543
Quality Can Vary: With so many freelancers to choose from, it's not always easy for
clients to find someone who does great work.
The Freelancers Collaboration Platform reimagining the way freelancers connect and collaborate
globally. With an intuitive interface and powerful features, GigBuddies simplifies the process of
finding compatible partners and managing projects efficiently. Through smart matching
algorithms, freelancers are seamlessly connected based on their skills and project preferences,
ensuring productive collaborations from the start. Integrated communication tools facilitate real-
time interaction, allowing freelancers to exchange ideas, share files, and coordinate tasks
effortlessly.With GigBuddies, freelancers can build their reputations within the community through
a transparent feedback system, while a secure payment gateway ensures fair compensation and
trust between parties. In essence, GigBuddies is more than just a platform; it's a catalyst for
collaboration, innovation, and success in the freelance industry.
2.2.1 FEATURES
User Profiles: GigBuddies allows freelancers to create detailed profiles showcasing their skills,
experience, and portfolios.
Project Boards: Freelancers can efficiently manage projects using project boards to assign tasks,
track progress, and collaborate effectively.
Real-time Messaging: GigBuddies features real-time messaging for seamless communication
among freelancers, facilitating quick collaboration.
Community Forums: GigBuddies hosts community forums for discussions, knowledge sharing,
and networking among freelancers.
Project Feedback: Freelancers can provide and receive feedback on project outcomes, ensuring
continuous improvement and client satisfaction.
System design is the phase that bridges the gap between the problem domain and the existing
system in a manageable way. This phase focuses on the solution domain, i.e. “how to
implement?”
It is the phase where the SRS document is converted into a format that can be implemented
and decides how the system will operate.
In this phase, the complex activity of system development is divided into several smaller sub-
activities, which coordinate with each other to achieve the main objective of system
development.
● Statement of work
● Requirement determination plan
● Current situation analysis
● Proposed system requirements including a conceptual data model, modified DFDs,
and Metadata (data about data).
The input design is the link between the information system and the user. It comprises the
developing specification and procedures for data preparation and those steps are necessary to
put transaction data in to a usable form for processing can be achieved by inspecting the
computer to read data from a written or printed document or it can occur by having people
keying the data directly into the system. The design of input focuses on controlling the
amount of input required, controlling the errors, avoiding delay, avoiding extra steps and
keeping the process simple. The input is designed in such a way so that it provides security
and ease of use with retaining privacy. Input Design considered the following things:
Input Design is the process of converting a user-oriented description of the input into a
computer-based system. This design is important to avoid errors in the data input process and
show the correct direction to the management for getting correct information from the
computerized system.
It is achieved by creating user-friendly screens for the data entry to handle large volumes of
data. The goal of designing input is to make data entry easier and to be free from errors. The
data entry screen is designed in such a way that all the data can be performed. It also provides
record viewing facilities.
A quality output is one, which meets the requirements of the end user and presents the
information clearly. In any system results of processing are communicated to the users and to
other systems through outputs. In output design it is determined how the information is to be
displaced for immediate need and also the hard copy output. It is the most important and
direct source of information to the user. Efficient and intelligent output design improves the
system’s relationship to help user decision-making.
1. Designing computer output should proceed in an organized, well thought out manner; the
right output must be developed while ensuring that each output element is designed so that
people will find the system can use easily and effectively. When analysis design computer
output, they should Identify the specific output that is needed to meet the requirements.
3. Create document, report, or other formats that contain information produced by the system.
The output form of an information system should accomplish one or more of the following
objectives.
Database design is the process of producing a detailed data model of database. This data
model contains all the needed logical and physical design choices and physical storage
parameters needed to generate a design in a data definition language, which can then be used
to create a database. A fully attributed data model contains detailed attributes for each entity.
The term database design can be used to describe many different parts of the design of an
overall database system. Principally, and most correctly, it can be thought of as the logical
design of the base data structures used to store the data. In the relational model these are
the tables and views. In an object database the entities and relationships map directly to
object classes and named relationships. However, the term database design could also be used
to apply to the overall process of designing, not just the base data structures, but also the
forms and queries used as part of the overall database application within the database
management system (DBMS).
The process of doing database design generally consists of a number of steps which will be
carried out by the database designer.
A large database defined as a single relation may result in data duplication. This
repetition of data may result in:
So, to handle these problems, we should analyse and decompose the relations with
redundant data into smaller, simpler, and well-structured relations that are satisfy desirable
properties. Normalization is a process of decomposing the relations into relations with fewer
attributes.
The main reason for normalizing the relations is removing these anomalies. Failure to
eliminate anomalies leads to data redundancy and can cause data integrity and other problems
as the database grows. Normalization consists of a series of guidelines that helps to guide you
in creating a good database structure.
Insertion Anomaly: Insertion Anomaly refers to when one cannot insert a new tuple
into a relationship due to lack of data.
Deletion Anomaly: The delete anomaly refers to the situation where the deletion of
data results in the unintended loss of some other important data.
Updatation Anomaly: The update anomaly is when an update of a single data value
requires multiple rows of data to be updated.
Search and Discovery: GigBuddies offers robust search and discovery features, enabling
users to easily find relevant services using categories, keywords, and filters for efficient
exploration.
Messaging System: The platform provides a real-time messaging system for users to
discuss project details and requirements, facilitating smooth communication and negotiation.
Freelancer Bio Page: GigBuddies includes a dedicated bio page for freelancers, allowing
them to showcase their skills, education, previous works, and current profile effectively to
potential clients.
The purpose of system testing is to identify and correct errors in the candidate system.
Testing is done to achieve the system goal. Testing is vital to the parts of the system are
correct; the goal will be successfully achieved. Inadequate testing or non-testing leads to
errors that may not appear until months later. The various types of testing done on the system
are:
⮚ Unit Testing
⮚ Integration Testing
⮚ Validation Testing
⮚ Quality Assurance
UNIT TESTING
INTEGRATION TESTING
Programs are invariably related to one another and interact in the total system. Each
program is tested to see whether it conforms to related programs in the system. Each portion
of the system is tested against the entire module with both the test data and the live data
before the entire system is tested as a whole.
VALIDATION TESTING
The validation testing is performed for all the data in the system. The data are
completely validated according to the companies request and requirement. The function or
performance characteristics confirming specification is uncovered and an efficiency list is
created.
● The Project is tested completely and various errors found are rectified.
● Security is maintained by providing a separate login for the users.
● Duplication of records are not allowed.
● Various validations are performed to ensure that important data are not missed.
● Testing is performed with some sample inputs from the company and the output is verified
and found right.
To follow the concept of white box testing we have tested each form. I have created
independently to verify that Data flow is correct, all conditions are exercised to check their
validity, all loops are executed on their boundaries.
The term black box indicates that the internal implementation of the program being executed
is not examined by the tester. Boundary value analysis is a technique of black box testing in
which input values at the boundaries of the input domain are tested. It has been widely
recognized that input values at the extreme ends of, and just outside of, input domains tend
to cause errors in system functionality.
Implementation is the stage in the project where the theoretical design is turned into a
working system. The most crucial stage is achieving a successful new system and giving a
user confidence that the new system will work efficiently and effectively in the
implementation stage. The stage consists of
IMPLEMENTATION PROCEDURES
The system was designed and developed using PHP programming language, MySQL
database management system, and HTML/CSS and BOOTSRAP for the user interface. The
proposed system addressed the limitations of the existing system, which helps freelancers
collaborate easily and manage projects efficiently on a user-friendly platform, making
freelancing simpler and more productive.
Through the implementation of the proposed system, we were able to achieve the following
objectives:
Develop and deploy GigBuddies as a user-friendly and robust collaborative platform for
freelancers.
Facilitate seamless collaboration among freelancers by providing tools for effective
communication, project management, and skill exchange.
Foster a thriving community by enabling freelancers to create profiles, connect with
peers, form teams, and share expertise effortlessly.
Ensure a positive user experience through intuitive design, ease of use, and effective
support systems.
The testing and implementation of GigBuddies demonstrated its reliability and efficiency in
enhancing freelancer collaboration. Future enhancements could include integrating a mobile
application for convenient access and notifications. Overall, GigBuddies represents a substantial
improvement over existing platforms, offering a more convenient and efficient way for freelancers
to collaborate and manage projects.
.
FREELANCERS COLLABORATION PLATFOR 28
MRAGUL M – 2122K0543
FUTURE ENHANCEMENT
In the future, there are several ways in which this system could be further developed and
enhanced. Some possible areas for future implementation include:
Enhance communication tools within GigBuddies, such as video conferencing and instant
messaging, to facilitate real-time collaboration and improve project coordination among
freelancers.
Overall, the GigBuddies project holds significant promise as a valuable tool for enhancing
freelancer collaboration and streamlining project management processes, ultimately
contributing to a more efficient and productive freelance ecosystem
.
● :Fiverr https://www.fiverr.com/
● Upwork: https://www.upwork.in/
Data flow diagram is a structured analysis tool for showing the movement of data
through the different transformations or processes in the system. Named bubbles show the
processes and data named arrows, entering or leaving the bubbles, represent flows. A
rectangle represents a source or sinks and is a net originator or consumer of data. A source or
sink is typically outside the main system study. DFD can be hierarchically organized which
helps in partitioning and analysing the large system, such systems are called levelled DFD’s.
For the hierarchy to be consistent it is important that net input or output of a DFD for a
process are the same input and output of the process in the higher level DFD. The refinement
stops until each bubble is atomic.
The data flow diagram may be used to represent a system or software at any level of
abstraction. In fact, DFD may be partitioned into levels that represent increasing information
flow and functional detail. A level 0 DFD is called a Context Level DFD. This model
represents the entire software element as a single bubble with input and output data indicated
by incoming and outgoing arrows respectively.
DFD is a Graphical representation of the flow data through an information system, modeling
in DFD primary steps creates an overview of the system.
Types of DFD
1) Physical DFD
An information dependent view of the current system showing what the data’s are
carried out and how they are performed.
2) Logical DFD
Entity
An Entity is the source of data the source in a DFD represents, these entities that are
outside the content of the system. Entities are representing rectangles.
Process
The process is the manipulation or work that transforms data, performing computation,
making decisions.
Data Store
A data store is a process that stores data between processors for lateral retrieval by the
same process.
DB
Data Flow
It’s a moment of data between the entity process and datastore. Data Flow is an interface
between the components of the DFD. It’s represented by an arrow.
LEVEL 1
start
Client Freelancer
Job details
client details
update
Freelancer information
Client information Job information
Job details
<!DOCTYPE html>
<html lang="en">
<head>
<style>
/* config.css */
:root {
--baseColor: #606468;
}
/* helpers/align.css */
.align {
display: grid;
place-items: center;
}
.grid {
inline-size: 90%;
margin-inline: auto;
max-inline-size: 20rem;
}
/* helpers/hidden.css */
.hidden {
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
/* helpers/icon.css */
:root {
--iconFill: var(--baseColor);
}
.icons {
display: none;
}
.icon {
block-size: 1em;
display: inline-block;
fill: var(--iconFill);
inline-size: 1em;
vertical-align: middle;
}
--loginInputBackgroundColor: #3b4148;
--loginInputHoverBackgroundColor: #434a52;
--loginLabelBackgroundColor: #363b41;
--loginSubmitBackgroundColor: #007bff;
--loginSubmitColor: #eee;
--loginSubmitHoverBackgroundColor: #6610f2;
}
.login {
color: var(--loginColor);
}
.login label,
.login input[type="text"],
.login input[type="password"],
.login input[type="submit"] {
border-radius: var(--loginBorderRadus);
.text--center {
text-align: center;
}
</style>
</head>
</html>
<body class="align">
<div class="grid">
<form action="validation.php" method="POST" class="form login">
<div class="form field">
<label for="login username"><svg class="icon">
<use xlink:href="#icon-user"></use>