Professional Documents
Culture Documents
Freelance Management System
Freelance Management System
A PROJECT REPORT
Submitted by
GOPINATH P
(Reg.No:P19LA 0009)
In partial fulfilment for the award of the degree
Of
MASTER OF COMPUTER APPLICATION
PROJECT ADVISOR
D.Nandhini MCA., M.Phil
CERTIFICATE
This is to certify that the project report entitled “Freelance Management System” is
a bonafide work done.
BY
NAME : GOPINATH P
REG.NO : P19LA0009
Submitted to Nehru Memorial College(Autonomous), Puthanampatti, Tiruchirapalli during
6th semester in Partial fulfilment of the requirement for the award of the degree of
Master of Computer Application.
I further certify that the project work carried out by him is an independent work
done under my supervision and guidance and it is not presented anywhere else.
1. Examiner 2. Examiner
ACKNOWLEDGEMENT
I thank God almighty for having gracefully blessed me with knowledge, skill and
enthusiasm in completing the project.
First and foremost I thank to my parents for their blessing throughout my life. I also
extend my sincere thanks to my beloved family members.
I would like to express my thanks to the honorable Chairman, governing body
Mr.M. PONNABALAM M.A., M.Sc., Nehru Memorial College, Puthanampatti for providing
me with necessary facilities for providing my project work without any hitches.
I would like to express my thanks to the president Er. PON. BALASUBRAMANIAN,
Nehru Memorial College, Puthanampatti for his support and encouragement for completing
the project work on time.
I express my science gratitude to Dr. A. R. PONPERIASAMY M.Sc (Phy)., M.Sc
(CS)., PGDCA., M.C.A., M.Phil., Ph.D.,Principal, Nehru Memorial College for having given
me the opportunity and for making my dreams come true.
Words are few but feeling are more to Dr.M.MURALIDHARAN M.Sc., M.Phil., PGDCA .,
PGDHET., Ph.D., Head, Department of Computer Science of Nehru Memorial College
Puthanampatti for his guidance, motivation right from the beginning of my studies. The
project will not be fulfill unless I say my deepest thanks to my guide D.NANDHINI
MCA.,M.Phil.,. Assistant Professor, Department of Computer Science , Nehru Memorial
College, Puthanampatti for her constant support and encouragement thought out my project.
I convey my thanks to all staff member of my department for their efforts
involvement and interest that they have shown in various aspects during my course.
It is a great pleasure to be able to thank all the people who helped me turn this system
from a list of good ideas.
(P.GOPINATH)
Freelance Management System
Abstract:
Freelance job is where you’re a temporary contract worker, rather than a permanent
employee. Depending on your level of expertise, it could be possible to work part-time hours,
but make full-time pay. Having control over your work load, the clients you work with, and
your income is a big benefit of freelancing. Freelancing is doing a job under contract rather
than full employment. Usually, people who freelance are selfemployed and for whom they
will work and they decide for how long. Freelancing offers the lot of freedom and flexibility
which regular jobs cannot. The freelancer can choose the type of the work, time of the day
can work and how long they work, a location they work and volume of work take on. The
freelancer can control work relationship and control work load. Platform freelancing has
many websites and anyone can register as freelancers or job posters. There is a discussion
forum to build up friendly environment between freelancers and clients. All they can work
without any language issue. For these solutions, the system is designed according to four sub
modules such as user validation module, file sharing module and manage profile. Users of the
system are Job poster, Freelancer (Jobseeker). Inputs of the system are Details of the Job
poster, Freelancer, Job, gig. Outputs of the system are Overall rating. Processes of the system
are collected data, analyze data and job posting, creating gigs, discussion and complete the
job. It is distributed among 20 selected users and collects their feedback. Keywords -
Freelancing, Freelancer.
Content
S. No Title Page No
Introduction
1.
System Analysis
2. 2.1 Existing system
2.2 Proposed system
Project Description
3. 3.1 Modules and Description:
System Requirement
4. 4.1 Hardware requirement
4.2 Software requirement
Software Description
5. 5.1 Front end
5.2 Backend
System Design
6. 6.1 Input design
6.2 Output design
6.3 Data flow diagram
Implementation And Maintenance
7. Testing
Conclusion
8.
Bibliography
9.
Appendices
10. 10.1 Coding
10.2 Screen Layouts
Introduction
Introduction:
A freelancer is a self-employed person who offers services to clients. These services
often, though not necessarily, are offered to businesses through the proliferation of sharing
economy platforms like Task Rabbit, Mechanical Turk, or Up work. However, individuals
can offer their services directly to clients, without third-party resources that often take a cut
of the pay. Freelancing is flexible. You can often work full- or part-time on projects of your
choice, at the hours that are convenient for you. Although clients can (and usually will) set
specifications for the work they want to be done, a freelancer is still an independent
contractor, not an employee. You'd be free to control how the work is completed. However, if
your clients don't like the final product, you might find yourself out of a gig. Freelancing
allows you to set your own price for your services, which is often higher than what you'd
make as an employee doing the same work. Make sure you charge enough to cover your
overhead and to compensate you fairly for the time it will take you to do the work. You'll
probably want to take on any client who will hire you when you're starting out, but you also
have the option to not take on difficult clients, especially as you grow. You can even tell
clients you no longer wish to work for them.
Nearly every type of service needed by a business can be provided by a freelancer. Some of
the most common freelance opportunities include:
Project Management
Web Design/Development
Software developer
Writing / Editing
Graphic Design
System Analysis
Existing System:
The existing system is a semi-automated at where the information is stored in the form of
excel sheets in disk drives. The information sharing to the Volunteers, Group members, etc. is
through mailing feature only. The information storage and maintenance is more critical in this
system. Tracking the member‘s activities and progress of the work is a tedious job here. This
system cannot provide the information sharing by 24x7 days.
More manpower.
Time consuming.
Consumes large volume of pare work.
Needs manual calculations.
No direct role for the higher officials.
To avoid all these limitations and make the working more accurately the system to be
computerized
.
Proposed System:
The development of this new system objective is to provide the solution to the
problems of existing system. By using this new system, we can fully automate the
entire process of the current system. The new system would like to make as web-
enabled so that the information can be shared between the members at any time using
the respective credentials. To track the status of an individual process, the status
update can be centralized using the new system. Being a web-enabled system, the
process can be accessed across the world over net.
This system also providing the features like , Mailing between the members; updating
the process status in centralized location; generated reports can also be exporting to
the applications like MS-Excel, PDF format, etc. In this new system, the members
like Donors can give their valuable feedback to the Volunteers so that the Volunteers
can check their progress of the tasks.
The entire process categorized as different modules like Admin module, Volunteer
module, etc. at where we can classify the functionality as an individual process.
Using the new system entering into Admin module we can perform….
Project Description:
Implementation is the stage in the project where the theoretical design is turned into a
working system. The implementation phase constructs, installs and operates the new system.
The most crucial stage in achieving a new successful system is that it will work efficiently
and effectively.
There are several activities involved while implementing a new project.
• End user Training
• End user Education
• Training on the application software.
Project Structure:
Modules and Description:
Modules:
The system after careful analysis has been identified to be presented with the
following modules:
Main Modules:
1. Admin
2. Client
3. Freelancer
Sub Modules:
1. Registration
2. Login
3. Admin_home
4. Freelance home
5. Client_home
6. Dashboard
7. Job post
8. Place your bid or gig
9. Process Or Task Maintain
10. Profile
11. Task completed
Module Description:
Admin Module:
Administrator can edit, add, delete and update any sub modules. He can keep track of
all the information in the corresponding modules. The Admin Module includes five sub
modules. They are
1. Login
2. Freelancer
3. Client
.4 Project
5. logout
Login:
Administrator have login used to login to see the information.
Freelancer Module:
Administrator can add new user and delete any existing employee if necessary.
Client Module
Administrator can add new Client and delete any existing employee if necessary.
Project:
Administrator can add new Project List and delete any existing employee if necessary2.
Requirements Specification:
Logout:
Logout is exit from your Admin account .
Freelancer Module:
1. Register
2. Login
3. Freelancer home
4. profile
5. Browser Your project
6. Search Project
7. Place bid
8. Process
9. Logout.
Register:
Register system is the module, which checks for a valid candidate when the
freelancer enters his , name, password, email, phone number, gender, city, and link to the
login page. As user id rules the system, with a help of user id a person is known by his
uniqueness of his user id. As it is to provide the viable candidate system, so the user id is
being validated with password in different cases to validate the genuinely of the candidate.
This register for security purpose for authorized user.
Login:
Login system is the module, which checks for a valid candidate when the user enters
his login-id, user-id, password and link to the main page. As user id rules the system, with a
help of user id a person is known by his uniqueness of his user id. As it is to provide the
viable candidate system, so the user id is being validated with password in different cases to
validate the genuinely of the candidate. This login for security purpose for authorized user.
Freelancer Home:
Freelancer Home module is a main module of the project this used to main the profile
And browser Your project.
Profile:
Profile module Used to store your personal information like name and email id
This information you give in register information in there in profile module.
Search Project;
Search Module is search a specific title or skill related filter to search and show the
list.
Place bid:
Place bid module is if you like a job and related to your skill so you place bid that is
your price value and time summary and qualification that send to client if it is like your
profile selected.
Process:
Process module is your project status related module your project are process or
completed status.
Logout:
Logout is exit from your Freelance account .
Client Module:
1. Register
2. Login
3. Client home
4. profile
5. Post project
6. Process
7. Show bid
8. Log out
Register:
Register system is the module, which checks for a valid candidate when the
freelancer enters his , name, password, email, phone number, gender, city, and link to the
login page. As user id rules the system, with a help of user id a person is known by his
uniqueness of his user id. As it is to provide the viable candidate system, so the user id is
being validated with password in different cases to validate the genuinely of the candidate.
This register for security purpose for authorized user.
Login:
Login system is the module, which checks for a valid candidate when the user enters
his login-id, user-id, password and link to the main page. As user id rules the system, with a
help of user id a person is known by his uniqueness of his user id. As it is to provide the
viable candidate system, so the user id is being validated with password in different cases to
validate the genuinely of the candidate. This login for security purpose for authorized user.
Client Home:
Client Home module is a main module of the project this used to main the profile
And browser Your project.
Profile:
Profile module Used to store your personal information like name and email id This
information you give in register information in there in profile module.
Post Project:
Post Project module is client our project post like project title , required skill and
duration, amount , description , qualification all details to post the job .
Process:
Process module is your project status related module your project are process or
completed status.
Show bid:
This is module is how many freelancers bid your project and you select one
freelancers who is work your project based on skill and other project related information.
Logout:
Logout is exit from your Client account .
System Requirements
System Requirements
The hardware and software specification specifies the minimum hardware and software
required to run the project. The hardware configuration specified below is not by any means
the optimal hardware requirements. The software specification given below is just the
minimum requirements, and the performance of the system may be slow on such system.
Hardware Requirements
Software Requirements
Introduction To Angular:
Modules:
Angular NgModules differ from and complement JavaScript (ES2015) modules. An
NgModule declares a compilation context for a set of components that is dedicated to
an application domain, a workflow, or a closely related set of capabilities. An
NgModule can associate its components with related code, such as services, to form
functional units.
Every Angular app has a root module, conventionally named AppModule, which
provides the bootstrap mechanism that launches the application. An app typically
contains many functional modules.
Like JavaScript modules, NgModules can import functionality from other
NgModules, and allow their own functionality to be exported and used by other
NgModules. For example, to use the router service in your app, you import the Router
NgModule.
Organizing your code into distinct functional modules helps in managing
development of complex applications, and in designing for reusability. In addition,
this technique lets you take advantage of lazy-loading—that is, loading modules on
demand—to minimize the amount of code that needs to be loaded at startup.
Components:
Every Angular application has at least one component, the root component that
connects a component hierarchy with the page document object model (DOM). Each
component defines a class that contains application data and logic, and is associated
with an HTML template that defines a view to be displayed in a target environment.
The @Component() decorator identifies the class immediately below it as a
component, and provides the template and related component-specific metadata.
Routing:
The router maps URL-like paths to views instead of pages. When a user performs an
action, such as clicking a link, that would load a new page in the browser, the router
intercepts the browser's behavior, and shows or hides view hierarchies.
If the router determines that the current application state requires particular
functionality, and the module that defines it hasn't been loaded, the router can lazy-
load the module on demand.
The router interprets a link URL according to your app's view navigation rules and
data state. You can navigate to new views when the user clicks a button or selects
from a drop box, or in response to some other stimulus from any source. The router
logs activity in the browser's history, so the back and forward buttons work as well.
Structure:
Front end folder Structure:
Back end
Back End:
Java:
Java is an object-oriented programming language developed by Sun Microsystems,
and it was released in 1995.
James Gosling initially developed Java in Sun Microsystems (which was later merged
with Oracle Corporation).
Java is a set of features of C and C++. It has obtained its format from C, and OOP
features from C++.
Java programs are platform independent which means they can be run on any
operating system with any processor as long as the Java interpreter is available on that
system.
Java code that runs on one platform does not need to be recompiled to run on another
platform; it's called write once, run anywhere(WORA).
Java Virtual Machine (JVM) executes Java code, but it has been written in platform-
specific languages such as C/C++/ASM, etc. JVM is not written in Java and hence
cannot be platform independent, and Java interpreter is a part of JVM.
Spring :
It was developed by Rod Johnson in 2003. Spring framework makes the easy
development of JavaEE application.
Spring is a lightweight framework. It can be thought of as a framework of frameworks
because it provides support to various frameworks such as Struts, Hibernate, Tapestry,
EJB, JSF, etc. The framework, in broader sense, can be defined as a structure where
we find solution of the various technical problems.
The Spring framework comprises several modules such as IOC, AOP, DAO, Context,
ORM, WEB MVC etc. We will learn these modules in next page. Let's understand the
IOC and Dependency Injection first.
Spring Moules:
The Spring framework comprises of many modules such as core, beans, context,
expression language, AOP, Aspects, Instrumentation, JDBC, ORM, OXM, JMS,
Transaction, Web, Servlet, Struts etc. These modules are grouped into Test, Core
Container, AOP, Aspects, Instrumentation, Data Access / Integration, Web (MVC /
Remoting) as displayed in the following diagram.
Spring Boot:
Spring Boot provides a good platform for Java developers to develop a stand-alone and
production-grade spring application that you can just run. You can get started with minimum
configurations without the need for an entire Spring configuration setup.
computer programming, the acronym CRUD stands for create, read, update an and
delete. These are the four basic functions of persistent storage. Also, each letter in the
acronym can refer to all functions executed in relational database applications and mapped to
a standard HTTP method, SQL statement or DDS operation.
MySQL:
MySQL is an open-source
source relational database management system (RDBMS). It is the
most popular database system used with PHP. MySQL is developed, distributed, and
supported by Oracle Corporation.
The data in a MySQL database are stored in tables which con consists
sists of columns and
rows.
MySQL is a database system that runs on a server.
MySQL is ideal for both small and large applications.
MySQL is very fast, reliable, and easy to use database system.It uses standard SQL
MySQL compiles on a number of platforms.
Postman:
Postman is an API(application programming interface) development tool which helps to
build, test and modify APIs. Almost any functionality that could be needed by any developer
is encapsulated in this tool. It is used by over 5 million developers every month to make their
API development easy and simple.
Vscode:
Visual Studio Code is a lightweight but powerful source code editor which runs on your
desktop and is available for Windows, macOS and Linux. It comes with built-in support for
JavaScript, TypeScript and Node.js and has a rich ecosystem of extensions for other
languages (such as C++, C#, Java, Python, PHP, Go) and runtimes (such as .NET and Unity)
HeidiSQL:
HeidiSQL is a useful and reliable tool designed for web developers using the popular
MySQL server, Microsoft SQL databases and PostgreSQL. It enables you to browse and edit
data, create and edit tables, views, procedures, triggers and scheduled events. Also, you can
export structure and data either to SQL file, clipboard or to other servers.
System Design
Database
Register
Admin Login
login
Register
login
Main Module
Main Module
Input Design
Register:
Login:
Post Project:
Place Your Bid:
Output Design:
Register
Project list:
Completed Project:
DATA FLOW DIAGRAM
DFD Level 0
Register
Freelance
Management Database
System
Login
DFD Level 1
Admin Login
View Details
Login
Freelancer
Register
Database
Login
Project list
Place bid
Completed Project
DFD Level 3
Client
Data Base
Register
Login
Post project
Process
Completed
ER Diagram
An entity relationship model al also called an entity-relationship(ER)
relationship(ER) diagram is a
graphical representation of entities and their relationship to each other, typically used in
computing in regard to the organization of data within databases or information systems. An
entity is a piece of data-an
an object or concept about which data is stored.
Use Case Diagram
DATABASE DESIGN
Database Design:
Database with Normalization:
Database Normalization is a technique of organizing the data in the database.
Normalization is a systematic approach of decomposing tables to eliminate data redundancy
and undesirable characteristics like Insertion, Update and Deletion Anomalies. It is a multi-
step process that puts data into tabular form by removing duplicated data from the relation
tables.
Normalization:
“Normalization is the process of converting complex data structures into simple and
stable data structures.”
Normalization Steps:
First Normal form (1NF). Any repeating groups have been removed so there is a single
value at the intersection of each row and column of the table.
As per the rule of first normal form, an attribute (column) of a table cannot hold multiple
values. It should hold only atomic values.
An attribute that is not part of any candidate key is known as non-prime attribute.
Table type:
1. One to one
2. One to many
3. Many to one
Database Table Schema:
Implementation
Implementation
This project “Freelance Management System” web application developed using
Angular Framework, Typescript as front-end and java, spring boot, mysql as backend.
The existing system caused long time transmission process but the system developed now has
a very good user-friendly tool, which has a menu-based interface.
All the server process are done through tomcat server.
The development process involves various types of testing. Each test type
addresses a specific testing requirement. The most common types of testing involved in
the development process are:
Unit Test
System Test
Integration Test
Functional Test
Performance Test
Beta Test
Acceptance Test
Validation Test
Unit Testing
The first test in the development process is the unit test. The source code is
normally divided into modules, which in turn are divided into smaller units called units.
These units have specific behavior. The test done on these units of code is called unit
test. Unit test depends upon the language on which the project is developed. Unit tests
ensure that each unique path of the project performs accurately to the documented
specifications and contains clearly defined inputs and expected results.
System Testing
Several modules constitute a project. If the project is long-term project, several
developers write the modules. Once all the modules are integrated, several errors may
arise. The testing done at this stage is called system test. System testing ensures that
the entire integrated software system meets requirements. It tests a configuration to
ensure known and predictable results. System testing is based on process descriptions
and flows, emphasizing pre-driven process links and integration points.
Testing a specific hardware/software installation. This is typically performed on
a COTS (commercial off the shelf) system or any other system comprised of disparate
parts where custom configurations and/or unique installations are the norm.
Functional Testing
Functional test can be defined as testing two or more modules together with the
intent of finding defects, demonstrating that defects are not present, verifying that the
module performs its intended functions as stated in the specification and establishing
confidence that a program does what it is supposed to do.
Integration Testing
Testing in which modules are combined and tested as a group. Modules are
typically code modules, individual applications, source and destination applications on
a network, etc. Integration Testing follows unit testing and precedes system
testing.Testing after the product is code complete. Betas are often widely distributed or
even distributed to the public at large in hopes that they will buy the final product when
it is released.
Validation Testing
The process of evaluating software during the development process or at the
end of the development process to determine whether it satisfies specified business
requirements. Validation Testing ensures that the product actually meets the client's
needs. Enter the ten digits mobile number for the test and if the number is correct,
accept and proceed to the next page. Otherwise it will display an error message.
Maintenance:
Software maintenance is the modification of a software product after delivery to
correct faults, to improve performance or other attributes. Software maintenance is a very
broad activity that includes error corrections, enhancements of capabilities, deletion of
absolute capabilities and optimization. Because change is inevitable, mechanism must be
developed for evaluation, controlling and making modifications. So any work done to change
the software after it is in operation is considered to be maintenance work.
Maintenance Types:
Preventive Maintenance:
Preventive maintenance is maintenance performed in an attempt to avoid failures,
unnecessary production loss and safety violations.
Corrective Maintenance:
This maintenance is often most expensive because worn equipment can damage
other parts and cause multiple damage. Corrective maintenance is probably the most
commonly used approach, but it is easy to see its limitations, if the equipment needs to be
replaced, the cost of replacing it alone can be substantial.
Adaptive Maintenance:
The adaptive maintenance modifiers software to properly interface with a
changing environment.
This project was the corrective maintenance because if the equipment needs to be replaced.
The cost of replacing it alone can be substantial
Conclusion
Freelance Management System Fixed-price projects are automatically marked complete
once your bid amount is paid in full. Hourly projects have to be ended manually by your
employer before they are marked complete. Feel free to ask your employer for the project’s
completion after your submitted work is reviewed and paid for. The Jobs Completed is the
percentage of the projects you have successfully completed versus the total number of
awarded projects you accepted.The On Budget and On Time percentages reflect your
previous employers’ feedback on whether or not you completed their projects for the agreed
price and on the agreed deadline. The Preferred Freelancer Program pools the best talent
,creating a community of elite freelancers whom we call Preferred Freelancers. If you get
accepted into the program, you will receive exclusive invitations to work on high-value
projects, and you will get the Preferred Freelancer badge to make your profile stand out,
among other perks.
Bibliography
Primary Sources:
Websites:
Angular official site
https://angular.io/docs
Spring and Spring boot Official site and Javatpoint
https://www.javatpoint.com/spring-boot-tutorial
https://spring.io/guides
Appendix
Source Code:
Front End:
Register.html:
<mat-card class="card">
<mat-card-title class="title">Sign form</mat-card-title>
<div class="container">
<form [formGroup]="loginForm" (ngSubmit)="onSubmit();">
<div class="form-group">
<label>Enter Your Name:</label>
<input type="name" class="form-control" formControlName="name"
placeholder="Enter Your Name"
autocomplete="on">
</div>
<div class="form-group">
<label>Email address:</label>
<input type="email" class="form-control" formControlName="email"
placeholder="Enter Your Email"
autocomplete="on">
<small class="form-text text-muted">{{msg}}</small>
<small class="form-text text-muted"
*ngIf="loginForm.controls.email.touched &&
loginForm.controls.email.errors?.required">
Please enter email address.!
</small>
</div>
<div class="form-group">
<label>Enter Your City</label>
<input type="text" class="form-control" formControlName="country"
placeholder="Enter Your City"
autocomplete="on">
</div>
<div class="form-group">
<label>Gender</label><br/>
<mat-form-field appearance="fill">
<mat-label>Gender</mat-label>
<mat-select name="gender" [(ngModel)]="selectedGender"
[ngModelOptions]="{standalone: true}">
<mat-option *ngFor="let g of gender" [value]="g.value">
{{g.viewValue}}
</mat-option>
</mat-select>
</mat-form-field>
</div>
ngOnInit(): void {
}
loginuser() {
this.routers.navigate(['/login-home']);
}
onSubmit() {
console.log(this.loginForm.value);
console.log(this.selectedGender);
console.log(this.selectedValue);
const signindata = {
name: this.loginForm.value.name,
email: this.loginForm.value.email,
password: this.loginForm.value.password,
number: this.loginForm.value.number,
country: this.loginForm.value.country,
gender: this.selectedGender
};
this.loginservice.signin(signindata).subscribe(data => {
console.log('Succesffuly create Your Account', data);
this.routers.navigate(['/login-home']);
}, error => {
this.msg = 'Your Email Id already exist';
}
);
this.loginForm.reset();
}
}
Login.html
<mat-card class="card">
<mat-card-title class="title">Login form</mat-card-title>
<p *ngIf="expression">Please Enter Your Valid Email and Password</p>
<div class="container">
<form [formGroup]="loginForm" (ngSubmit)="onSubmit();" novalidate>
<small class="form-text text-muted">{{msg}}</small>
<div class="form-group">
<label>Email address</label>
<input type="email" class="form-control" formControlName="email"
placeholder="Enter email" autocomplete="on"
[(ngModel)]="user.email">
<small class="form-text text-muted"
*ngIf="loginForm.controls.email.touched &&
loginForm.controls.email.errors?.required">
Please enter email address.!
</small>
</mat-card>
Login.Ts
import {Component, OnInit} from '@angular/core';
import {FormControl, FormGroup, Validators} from '@angular/forms';
import {Router} from '@angular/router';
import {LoginService} from '../service/login.service';
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css']
})
export class LoginComponent implements OnInit {
loginForm: FormGroup;
msg = '';
expression = false;
user = {
email: '',
password: ''
};
ngOnInit(): void {
}
singup() {
this.routers.navigate(['/signup']);
}
onSubmit() {
if (this.loginForm.value.email === 'admin@gmail.com' &&
this.loginForm.value.password === 'admin') {
console.log('admin login successfully');
this.routers.navigate(['/admin']);
}
else {
// this.routers.navigate(['/main']);
console.log(this.loginForm.value.email);
console.log(this.loginForm.value.password);
const logindata = {email: this.loginForm.value.email, password:
this.loginForm.value.password};
this.loginservice.create(logindata).subscribe(data => {
console.log(data);
console.log('LoginSuccessfully');
this.routers.navigate(['/main']);
}, error => {
console.log('exception occured');
this.msg = 'Plase Enter Your Valid Email And Password';
});
}
}
}
signin(signindata: { name: string, email: string, password: string, number: number, country:
string, gender: string }) {
const httpHeader = new HttpHeaders();
httpHeader.append('content-type', 'application/json');
return this.httpClient.post('http://localhost:9090/register', signindata, {headers:
httpHeader});
}}
BackEnd:
Entity:
Register.java
package com.collegeproject.freelencerapi.entity;
import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Data
@Table(name = "register")
public class Register {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
private String name;
private String email;
private String password;
private String number;
private String country;
private String gender;
public Register() {
public Register(String name, String email, String password, String number, String country,
String gender) {
super();
this.name = name;
this.email = email;
this.password = password;
this.number = number;
this.country = country;
this.gender = gender;
}
import com.collegeproject.freelencerapi.entity.Register;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface RegistrationRepository extends JpaRepository<Register, Integer> {
}
Service:
RegisterService.java
package com.collegeproject.freelencerapi.service;
import com.collegeproject.freelencerapi.entity.Register;
import com.collegeproject.freelencerapi.repository.RegistrationRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class RegistrationService {
@Autowired
public RegistrationRepository registrationRepository;
}
Controller:
RegisterController.java:
package com.collegeproject.freelencerapi.controller;
import com.collegeproject.freelencerapi.entity.Register;
import com.collegeproject.freelencerapi.service.RegistrationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class RegistrationController {
@Autowired
private RegistrationService registrationService;
@PostMapping("/register")
public Register saveregister(@RequestBody Register register) throws Exception {
String tempEmail = register.getEmail();
if (tempEmail != null && !"".equals(tempEmail)) {
Register user = registrationService.fetchUserByEmail(tempEmail);
if (user != null) {
throw new Exception("This is Email Id " + tempEmail + "already exist");
}
}
}
if (userobj == null) {
throw new Exception("Bad credentials");
}
return userobj;
}
}
Screen Layouts:
Main Home:
Register
Login:
Job Post:
Place Bid:
Freelancer Home:
Project List Or Feed:
Overview:
Process:
Admin:
Thank You