0% found this document useful (0 votes)
39 views19 pages

Final MIni Task Trade Srs 20

Uploaded by

NIK
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views19 pages

Final MIni Task Trade Srs 20

Uploaded by

NIK
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

Audyogik Shikshan Mandal’s

(Society Regd. No. Maharashtra/ 1330/ Pune 83; Public Trust No. F-2451/ Pune 83)
INSTITUE OF BUSINESS MANAGEMENT AND RESEARCH, MCA, PUNE
Approved by AICTE, Govt. of India & Affiliated to Savitribai Phule Pune University

Ref. No. ASM/IBMR/MCA Date:

CERTIFICATE
This is to certify that Mr Rahul Deepak Darwade is a bonafide student of
the ASM`S IBMR,MCA Program of this institute for the academic year
2023/ 2024
He has undertaken and completed the Mini project as prescribed by the
Savitribai Phule Pune University for the partial fulfillment of MCA Program
on the topic Task Trade.

HOD
Internal Guide (MCA Department)

___________________
External Examiner

MIDC, Block ‘C’ Chinchwad Pune – 411019


Tel +91 – 020 – 27475090 / 27478666 | Fax +91 – 020 – 27471753 | www.asmedu.org | Email: ibmrmcapune@asmedu.org

1
DECLARATION

I hereby declare that the present mini project work “Task Trade” is original
work carried out under the guidance of “Mr. Prashant kori”, MCA
Department, ASM’s Institute of Business Management and Research,
MCA,
Chinchwad. It has not been submitted by me in part or full to any University
for any examination before. This work has been carried out by me at the
Savitribai Phule Pune University during the academic session
2023-2024.

Date:

1. Rahul Darwade (233247) ____________

MCA III Semester


Department of Master of Computer Application,
ASM’s Institute of Business Management and Research, MCA, Chinchwad
ACKNOWLEDGEMENT
It is a pleasure to acknowledge the assistance of several people and institutions in this

effort. Honestly speaking, this project has turned me into a debtor. First and foremost,

I feel indebted to my guide and all the faculty members of Department of MCA, ASM’s

IBMR, MCA Institute Chinchwad for their valuable guidance, continuous support and

advice and constant encouragement throughout my project work.

I would like to extend my gratitude to honorable Dr. V. P. Pawar Sir, Director, ASM’s

IBMR, MCA Institute Chinchwad for being a constant source of inspiration.

Finally, I would like to extend my thanks to all those who have contributed, directly or

indirectly to make this project successful.

Rahul Darwade (233247)


Index

Sr.no Topic Page No.

Chapter 1: INTRODUCTION

1.1 Introduction 6
1.2 Objectives of the Project 6

1.3 Scope Of the Project 6


1.4 Intended Audience and Document Overview 7
Chapter 2: PROPOSED SYSTEM

2.1 Literature Survey 8

2.2 Existing System 9

2.3 Proposed System 9

2.4 Feasibility Study 9

2.5 Specific Requirements 9

Project Modules 10
2.6

Chapter 3:ANALYSIS & DESIGN

3.1 Use-Case Diagram 11

3.2 Data Flow Diagram 12

3.3 E-R Diagram 13

3.4 Sequence Diagram 13

3.5 Screen Layout 14

3.6 Table Design 16

3.7 Test Procedures 17

3.8 Future Scope 17

3.9 Sample Code 18

Chapter 4:CONCLUSION

4.1 Limitation & Conclusion 21

4.2 Bibliography 21
1.1 Introduction
Freelancing platforms have grown exponentially with the rise of the gig economy, providing
both freelancers and clients with a flexible working arrangement. These platforms allow
businesses to post short-term projects while freelancers bid for them, leading to mutual
benefits. However, many existing platforms suffer from issues such as high fees, complex
interfaces, and lack of customization. The proposed freelancing app aims to address these
challenges by creating an easy-to-use platform tailored for seamless interactions between
freelancers and clients, especially for small to medium-scale projects.
The app will provide functionalities such as user registration (for both freelancers and
clients), job posting, bidding, secure payments, and messaging. By using Android Studio as
the development platform and Firebase for backend services, this app will target a wide user
base and provide real-time updates.

1.2 Objectives of the Project


The freelancing app has the following core objectives:
• Efficient Client-Freelancer Interaction: Facilitate seamless communication between
freelancers and clients by providing in-app messaging, notifications, and feedback
mechanisms.
• Ease of Use: Design an intuitive and easy-to-navigate user interface, reducing the learning
curve and enhancing user adoption.
• Secure Transactions: Ensure that financial transactions between freelancers and clients are
secure, protecting both parties from fraud or disputes.
• Transparent Feedback System: Allow clients and freelancers to rate each other,
contributing to the credibility of users on the platform.

1.3 Scope of the Project


This project focuses on developing a mobile application with the following scope:
• Registration and Login: Both clients and freelancers can register and log in using Firebase
Authentication (via email and password, social media accounts, or phone numbers).
• Job Posting: Clients can post detailed job descriptions, including required skills, budget,
and deadlines.
• Bidding System: Freelancers can view job postings, place bids, and propose budgets
based on the job requirements.
• Payment Integration: Secure payments via third-party payment gateways such as Stripe or
PayPal, ensuring timely transactions upon job completion.
• Profile Management: Freelancers and clients can manage their profiles, including past
projects, ratings, skills, and portfolios.

5
• Notification System: Users will be notified about bids, job approvals, and payments via
real-time push notifications.
• Ratings and Reviews: Both parties can rate and review each other after the completion of
a project, helping maintain quality and trust within the platform.
The app will be developed on the Android platform, targeting the vast Android user base
globally. In the future, expansion to iOS and web platforms will be considered.

1.4 Intended Audience and Document Overview


This document is intended for:
• Developers: To understand the app’s architecture, coding standards, and implementation
strategies.
• Project Managers: To oversee the project's progress, assess feasibility, and ensure it
meets stakeholder requirements.
• Testers: To use the provided analysis, design diagrams, and use cases to develop test
cases and conduct rigorous testing.
• End-Users: A brief section of this document can be used as a high-level overview to
introduce the platform to prospective users.
The document is organized into several chapters. The first chapter introduces the project, its
objectives, and scope. The second chapter discusses the proposed system, detailing its
components, requirements, and feasibility. The third chapter covers system analysis and
design, with diagrams and sample code, while the final chapter presents conclusions and
future work

6
Chapter 2: PROPOSED SYSTEM
2.1 Literature Survey
1. PeoplePerHour
PeoplePerHour is a UK-based freelancing platform that focuses on connecting clients with
freelancers who work on an hourly basis or for fixed-price projects. The platform allows
freelancers to offer services in various categories, such as design, writing, and development.
Pros:

• Focuses on both hourly and project-based work.

• Offers a clear and simple workstream for managing projects and payments. Cons:

• Charges significant fees (service fee up to 20% on freelancers' earnings).

• Limited reach compared to larger platforms like Upwork and Fiverr.

2. Guru
Guru is a freelancing marketplace that allows freelancers to showcase their skills and connect
with clients. It has a strong emphasis on long-term client relationships. Pros:

• Provides a user-friendly interface and tools for project management.

• Offers different membership plans with lower fees for premium members. Cons:

• Higher commission fees for non-premium members.

• Smaller market share compared to platforms like Upwork.

3. Toptal
Toptal positions itself as an exclusive network for top-tier freelancers, focusing primarily on
software development, design, and finance experts. The platform emphasizes quality over
quantity, accepting only a small percentage of applicants. Pros:

• High-quality talent pool.

• Toptal manages the selection process, ensuring top-tier professionals. Cons:

• Limited to highly skilled freelancers, making it inaccessible for beginners.

• High costs for clients and strict requirements for freelancers.

7
2.2 Existing System
In the current freelancing ecosystem, platforms often:

• Charge high service fees, which reduce freelancer earnings.


• Offer limited direct communication, relying on formal messages rather than real-time
interactions.

• Have complicated interfaces that make it hard for new users to navigate the system.

2.3 Proposed System


The proposed Freelancing App offers the following features and improvements, with some
core elements already implemented:
• Signup and Login: Freelancers and clients can register and authenticate themselves via a
secure sign-up and login system. This feature is crucial for maintaining user-specific data
and secure access to the app.
• Home Page: Users can access key functionalities through the home page, including
browsing job postings and filtering them based on location and job type.
• Job Posting: Clients can post jobs, including details such as the company name, job type,
job location, and job description. Freelancers can view these job postings and apply
accordingly.
• About Us Page: Provides an overview of the app, its purpose, and how it aims to connect
freelancers and clients.

2.4 Feasibility Study


• Technical Feasibility: The app will be developed in Java for Android using Android
Studio, integrating Firebase for authentication and real-time data updates.
• Operational Feasibility: The user-friendly interface and modern payment systems will
ensure smooth operations for clients and freelancers.
• Economic Feasibility: With minimal upfront costs, the revenue model can include
premium features or a commission on payments processed through the platform.

8
2.5 Specific Requirements
• User Authentication: Firebase integration for secure login and registration.
• Real-time Bidding: WebSocket or Firebase Firestore for real-time job updates and
notifications.

• Payment Gateway: Integration with Stripe or PayPal for secure payments.


• Profile Management: Users will be able to manage their personal and professional
details.
2.6 Project Modules
• Login/Signup Module: Implemented using Firebase-based authentication to ensure secure
user login and registration. Users can create accounts, sign in, and manage credentials.
• Home Page Module: Provides users with a central navigation hub, displaying key options
and access to job postings, personal information, and other features.
• Job Posting Module: Clients can post jobs with necessary details like job title,
description, location, and type. This feature is fully functional for clients to list new job
opportunities.
• Job Search Module: Freelancers can browse through available job listings and filter them
based on criteria like job type and location.
• About Us Module: Displays information about the app, its mission, and how it serves
freelancers and clients.
• Delete Account Module: Users have the ability to delete their accounts, ensuring privacy
and data control as per their preferences.

9
Chapter 3: ANALYSIS & DESIGN
3.1 Use-Case Diagram

10
3.2 Data Flow Diagram
1. Zero level

2. First level

11
3.3 ER Diagram

3.4 Sequence Diagram

12
3.5 Screen Layout

13
3.7 Test Procedures
• Login/Signup Testing: Ensure the Firebase-based authentication module works correctly.
Test for various scenarios including valid login, invalid login (wrong password or
nonexistent email), signup functionality, and password recovery.
• Job Posting Testing: Test the functionality where clients post jobs. Ensure fields like job
title, description, location, and job type are correctly validated and saved to the database.
• Job Search Testing: Test the search functionality to ensure freelancers can search for jobs
based on filters like job type and location. Ensure accurate search results are returned
based on user input.
• Delete Account Testing: Ensure that users can successfully delete their accounts, and all
related data is securely removed from the system.
• Home Page Testing: Verify that all navigation links on the home page work correctly and
lead to the appropriate sections.

3.8 Future Scope


• International Payment Support: Expand the payment module to support a wider range of
international payment gateways (e.g., Payoneer, Skrill) to cater to a global user base.
• Job Posting Alerts: Implement a real-time notification system where freelancers are
instantly notified when new jobs matching their skills are posted.
• Admin Notifications: Implement an admin notification system to alert the admin about
flagged jobs, issues, or suspicious activity in real time.
• Personalized Job Matching: Implement machine learning algorithms that analyze user
profiles, job preferences, and application history to recommend the most relevant jobs to
freelancers.
• Freelancer Analytics: Provide freelancers with insights into their performance, such as job
success rate, client feedback trends, and job application history.
• Client Analytics: Offer clients analytics on their job postings, such as the number of
applicants, average freelancer ratings, and job posting performance.

14
3.8 Sample Code
package com.sce.findjobproject;

import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task; import
com.google.android.material.button.MaterialButton; import
com.google.android.material.snackbar.Snackbar; import
com.google.android.material.textfield.TextInputEditText;
import com.google.firebase.auth.AuthResult; import
com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;

import java.util.Objects; import


java.util.regex.Matcher;
import java.util.regex.Pattern;

import io.reactivex.annotations.NonNull;

public class SignUp extends AppCompatActivity {


public FirebaseAuth mAuth;

public TextInputEditText edit_email,edit_password;


public MaterialButton button_register;
public Button button_login;

@Override protected void onCreate(Bundle


savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signup);

initialize();
onStart();
startButtons();
15
}
void startButtons(){
button_login.setOnClickListener(view -> {
startActivity(new Intent(SignUp.this, SignIn.class));
overridePendingTransition(R.anim.slide_in,R.anim.slide_out);
});
}

void initialize(){
// Initialize variables for UI elements
edit_email= findViewById(R.id.edit_email);
edit_password= findViewById(R.id.edit_password);
button_register=findViewById(R.id.button_register);
button_login=findViewById(R.id.button_login);
mAuth = FirebaseAuth.getInstance();
}
@Override public
void onStart() {
super.onStart();
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
//check if user is already connected.
if (user != null) {
Toast.makeText(this, "User is already connected", Toast.LENGTH_SHORT).show();
} else { reload(); // if not start register function
name 'reload'
}
}

public static boolean isEmailValid(String email) { //function that checks if email is valid.
String expression = "^[\\w\\.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";
Pattern pattern = Pattern.compile(expression,
Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(email);
return matcher.matches();
}

public static boolean isPasswordValid(String password) {


return password.length() >= 6;
} //function that check if password is valid. (password need to be over 6 numbers and letter
to work in firebase)

16
// Other code

public FirebaseAuth getAuth() {


return mAuth;
}

public void reload() {


// Set up the "Register" button
button_register.setOnClickListener(view -> {
//check if email and password are valid.
if(edit_email==null ||
Objects.requireNonNull(edit_email.getText()).toString().isEmpty() ||
!isEmailValid(edit_email.getText().toString())){
// Email is invalid, show a Snackbar with an error message
Snackbar snackbar = Snackbar.make(view, R.string.enter_a_valid_email,
Snackbar.LENGTH_SHORT);
snackbar.setAction("Dismiss", view1 -> snackbar.dismiss());
snackbar.show();
}
if(edit_password==null ||
Objects.requireNonNull(edit_password.getText()).toString().isEmpty() ||
!isPasswordValid(edit_password.getText().toString())) {
// Password is invalid, show a Snackbar with an error message
Snackbar snackbar = Snackbar.make(view, R.string.enter_a_valid_password,
Snackbar.LENGTH_SHORT);
snackbar.setAction("Dismiss", view1 -> snackbar.dismiss());
snackbar.show();
}

if(edit_password!=null && edit_email!=null &&


!(Objects.requireNonNull(edit_password.getText()).toString().isEmpty()) &&
!(Objects.requireNonNull(edit_email.getText()).toString().isEmpty())
&&isEmailValid(edit_email.getText().toString())&&
isPasswordValid(edit_password.getText().toString())){

mAuth.createUserWithEmailAndPassword(Objects.requireNonNull(edit_email.getText()).toS
tring().trim(), edit_password.getText().toString().trim())
.addOnCompleteListener(SignUp.this, new
OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@androidx.annotation.NonNull @NonNull
Task<AuthResult> task) {

17
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user's information
FirebaseUser user = mAuth.getCurrentUser();
Snackbar snackbar = Snackbar.make(view,
R.string.Authentication_successful, Snackbar.LENGTH_SHORT);
snackbar.setAction("Dismiss", view1 -> snackbar.dismiss());
snackbar.show();

updateUI(user);
} else {
// If sign in fails, display a message to the user.
Snackbar snackbar = Snackbar.make(view,
R.string.Authentication_failed, Snackbar.LENGTH_SHORT);
snackbar.setAction("Dismiss", view1 -> snackbar.dismiss());
snackbar.show(); updateUI(null);
}
}

private void updateUI(FirebaseUser user) {


if(user!=null) { startActivity(new
Intent(SignUp.this, SignIn.class));
overridePendingTransition(R.anim.slide_in, R.anim.slide_out);
}
}
});
}
});
}
}

18
Chapter 4: CONCLUSION

4.1 Limitation & Conclusion


The freelancing app provides a robust, user-friendly platform that effectively connects
freelancers with clients, making it easier for both parties to engage in professional
collaborations. The app includes core features such as secure Firebase-based authentication,
job posting, job searching, account management, and informational sections like the "About
Us" page. Additionally, the app is designed to be scalable, with the possibility of adding new
features such as real-time notifications and payment gateway integration, which will enhance
user experience and streamline transactions between freelancers and clients.

4.2 Bibliography
Firebase Documentation: https://firebase.google.com/docs

Android Developers Guide: https://developer.android.com/docs

Java Programming Guide: https://docs.oracle.com/javase/tutorial/

W3Schools (General Web Development): https://www.w3schools.com


YouTube – Android Development Tutorials (Coding with Mitch):
https://www.youtube.com/c/CodingWithMitch
YouTube – Firebase and Android Integration (CodeWithHarry):
https://www.youtube.com/c/CodeWithHarry
Book – "Android Programming: The Big Nerd Ranch Guide" by Bill Phillips and Chris
Stewart: https://www.bignerdranch.com/books/android-programming/
Book – "Head First Android Development: A Brain-Friendly Guide" by Dawn Griffiths and
David Griffiths: https://www.oreilly.com/library/view/head-first-android/9781491974056/

19

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy