Final MIni Task Trade Srs 20
Final MIni Task Trade Srs 20
(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
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
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:
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
I would like to extend my gratitude to honorable Dr. V. P. Pawar Sir, Director, ASM’s
Finally, I would like to extend my thanks to all those who have contributed, directly or
Chapter 1: INTRODUCTION
1.1 Introduction 6
1.2 Objectives of the Project 6
Project Modules 10
2.6
Chapter 4:CONCLUSION
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.
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.
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:
• Offers a clear and simple workstream for managing projects and payments. Cons:
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:
• Offers different membership plans with lower fees for premium members. Cons:
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:
7
2.2 Existing System
In the current freelancing ecosystem, platforms often:
• Have complicated interfaces that make it hard for new users to navigate the system.
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.
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
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.
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 io.reactivex.annotations.NonNull;
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();
}
16
// Other code
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);
}
}
18
Chapter 4: CONCLUSION
4.2 Bibliography
Firebase Documentation: https://firebase.google.com/docs
19