Work on open freelance projects


 Submit a project request for free !
If you're looking for skilled freelance developer, to complete a freelance project for you
you can contact all of the listed freelancers by this form.



List of open projects:

Get the latest freelance project announcements
Follow CodeGravity.com
I need e-commerce site for my own business
date: 21.04.2026
This project was submitted just recently and is available for Premium Freelance Members only. It will be available for other members after 2 days.
name:Be first who will contact the project owner, subscribe for premium freelance membership for only $2/month
description:Looking for an experienced front end developer for 1-2 moth project. You will wok with a team of experts for this project.
- I have an example site and I want to make same site, designing, functionality
- Example site: http://bit.ly/2ece8ae
- Please refere this site
- Check product view page
...
email:Be first who will contact the project owner, subscribe for premium freelance membership for only $2/month
budget:$20000 - $30000

Amazon API & PHP Developer
date: 20.01.2017
name:Anuj
description:Hi

I am looking for someone who has knowledge in Amazon API and php .....

We will want the developer to build us a system for our Amazon ecommerce business...

Things like
- Invoicing
- Feedback management
- Order management
- keyword ranking
- Amazon advertising

We will look at including the person in our team and keep building more and more solutions for our internal use.

Please share your experience and why you are a perfect fit

Thanks
Anuj
email:
budget:$100 - $500

gml programmer
date: 16.01.2017
name:ajith cage
description:need a programmer to program a 2d physics platformer game
email:
budget:$10 - $250

web and mobile app in ruby rails
date: 15.01.2017
name:Ari Patil
description:Hi
we need someone working on ruby rails who would assist in customising and hosting dev and production instance of a open source application on github in the cloud or with said hosting service provider.

regards
Ari

email:
budget:$500 - $1000

Matrimonial site
date: 15.01.2017
name:Visheta K
description:Work on matrimonial site 60% complete needs to be taken further to completion

Skills: PHP, HTML5 bootstrap, Code Ignitor, MySQL, web design, IP tracking, batch uploads, customer, vendor management, online sales promotions and discount, shopping cart, LAMP, web responsive
integration with SMS, Online Chat/Video, Astro and Payment Gateway, Facebook, Linked In, and other sites for login
Open Source, knowledge of secure and data encryption is a must.
email:
budget:$150 - $350

Startup
date: 11.01.2017
name:Soham
description:We need an app for iphones 5 and later in IOS. It is for a startup that my friends and I are hoping to create to stop distracted driving. The app needs to be able to carry out the following functions. This is a rough idea for the code, and we only need the basics to be done. The parts that are not explicitly stated (for example the point system itself) will be done after the code is done and sent back to us. If any part of this is unclear, please email me at the address above. Price point is negotiable:

1. Sense that the phone is moving over a certain threshold speed
2. Sense that the phone is plugged in and charging
3. Sense that the phone is at a certain tilt (that corresponds to our dashboard mount, so that the phone is sensed to be in the mount)

If all the above conditions are met:
With Embedded google maps in software, sense the distance the car has driven over the threshold speed

Award a certain amount of points based on a predetermined point system per mile driven

If the car is below the threshold speed for more than 20 minutes, the points are added to the total amount of points for all trips, and the tally of points for that drive goes back to 0

On another Tab total amounts of points over all trips can be viewed and each drive is saved, so the user can see which drive gained the user which points

On a third tab, display all the offers from restaurants and businesses (each with a place so that the corresponding icon/photo can be added) that are currently available.
if one of these offers is selected, open to a new screen that has the points required for the discount and have a button that says redeem
if redeem button is selected, the appropriate amount of points are deducted from the total amount and a new window opens with the “receipt”

email:
budget:$50 - $200

joint parameter selection for an energy efficient massive MIMO
date: 10.01.2017
name:Aarti mishra
description:I have an algorithm for the parameter selection for single cell scenario and multicell scenario. I just want it to be implemented in MATLAB for obtaining different graphs.
email:
budget:$1 - $14

age prediction programming in python opencv
date: 10.01.2017
name:samixa toshniwal
description:Face age prediction from an image using anthropometric features.It will predict the age of a person from image. Language use is python (opencv)
email:
budget:$1 - $14

E-commerce with Store Locator Map
date: 09.01.2017
name:Sanjay Kumar
description:Hi,

I need a e-commerce website to sell products in 2 countries in retail market.

Also looking for a page with Map to display my store locations.

Sanjay
email:

College Society Manager Android Application
date: 09.01.2017
name:Rajeev Singh
description:Project Should be able to Add all the societies in college..
Every Society will have an admin and number of volunteer who will announce the new event and the event should be visible in the application home page...

All the students able to see all the notification regarding to the upcoming or active event and will be able to register online...

Project will have the college server..

Home page will have the login option as admin of society , and as the student...

if student is not yet registered then registration page opens that requires name, st.no, university roll and other info...

Events will created for specific years student ...
And all the other requirements as a college society manager application should have...(Which i did not considered yet)...
Project is for final year B.tech student.
this is a major project...
email:
budget:$100 - $100

Stream Webcam from Webpage
date: 08.01.2017
name:Al Perry
description:The project is to stream live Webcam Audio/Video and pre-recorded playlists from an embedded VLC player to my group from my website.
email:
budget:$50 - $150

Neural networks perform the gpu
date: 07.01.2017
name:sama radpoor
description:i need run this paper :"Learning to Read Chest X-Rays:
Recurrent Neural Cascade Model for Automated Image Annotation"on gpu
email:

FOUNDER
date: 06.01.2017
name:Mangesh C
description:Hi ,

I am looking for Web, Android and iOS developer for our start up business at reasonable cost. We already have website & Android App developed and we are looking for a developer who can make enhancement to our existing website & Android App. Also we would like to develop iOS App from the scratch. Please contact me on this mobile - 968675 4340.
email:

Location based website content and data analysis
date: 06.01.2017
name:Bharat Vishwa
description:This is a two stage Project which has to be done individually and then integrated.
The first part is to create a website based on location based content. The main idea is when a user goes to a website or accesses a website , using a geo-ip api we get to know the location of the user through maxmind database or others(whichever is reliable).
If the user is from Mumbai,india , we get to know by its IP address and then show him the content based on Mumbaim Like its temperature, specialities and so on.
Not second part is making a database of the users who have accessed the website, their sessions, number of users on a particular day, hour, week , month or a year. No of users from a particular country.
Also using the geomap api we need to show the number of users on a map by red dots or whatever suits good.
The user can sign up or they can use the website as a guest visitor. Also we need to host the website on a server.
This is a somewhat dynamic project so there will be some more specifications on a later stage.
But for now this is it. Please start as soon as possible.
Also if possible I need an explanation of the technicalities because I need to explain it later on.


email:
budget:$100 - $600

JS / JQuery development
date: 31.12.2016
name:Kanishka G
description:Require JS / JQuery development for HTML5 pages for a desktop app.

Location specification: Mumbai (as this may require a couple of F2F meetings with the back end Java dev team)
email:

Hybrid Mobile App + JQuery / JS
date: 31.12.2016
name:Kanishka G
description:Create a mobile version of a Java / HTML5 based web App using hybrid (Phone Gap, etc.).
Folks based out of Mumbai will be preferred as there may be some F2F interactions
email:

Display messages on iPhones
date: 26.12.2016
name:Raban
description:We are a team of former university students from ETH Zürich and are working on a chat application that offers a new way for secure messaging and an innovative user interface introducing a new kind of communication using Emojis. 

We want to port an existing Android chat application to iOS and are looking for someone who can help us with the translation of the code. We are using J2ObjC to translate our business logic from Android (java) to Objective-C.

Initially you would create a small part of our app to see how well you fit into our team and if the way we want to approach this translation works as we think it does. If everything goes well there will be more and bigger tasks for you to work on afterwards.

The first task is to use our translated java code which accesses a local SQLite database and outputs a list of message objects to build a user interface that can display these messages and updates itself once there are new messages in the SQLite database. To achieve this goal, you will build your code based on the user interface from JSQMessagesViewController (https://github.com/jessesquires/JSQMessagesViewController).

To ensure that you have read our project description, we would appreciate if you could address us by „Dear StageChat Team“ in your reply.

We are looking forward to your applications!
email:
budget:$70 - $100

Java Spring MVC, Apache CXF Webservices
date: 24.12.2016
name:Dheerendra Kulkarni
description:Hi,

We are developing a backend engine to power our website. This is built on Spring MVC and Webservices.
Let me know if any one is interested. The project is for 2 months.

We want the person to work at our premises.


Regards,
Dheerendra
email:
budget:$5 - $10

Web Application Development In Dot Net Technologies
date: 20.12.2016
name:ajeet Srivastava
description:Project Requirements is ant type of Portal

E- commerce , job portal, matrimonial, Classifieds, Tour & Travel, and Website development,

I have 4.6 year experience in Dot Net Technologies using
(Asp.net, c#, web services, wcf, jquery, html, css, sql server 2008- 2012, stored procedure, view, triggers)

I have been completed on project

e-commerce- www.mybazar.co
media (news)- www.bbckhabar.com
health - www.thebluenerve.com
Ac services Provides - www.sraindiaassistance.com
e-commerce - www.jkmshop.com
Regards

Ajeet Srivastava

email:
budget:$100 - $2000

Video from webapp, taking snap shots and storing in server.
date: 19.12.2016
name:Gustavo Blas
description:In a web app create the functionality to allow users to take a video with his device camera. The system will take three snapshots from the video. The video and the snapshots will be stored in a database in the server.
email:

mobile price comparison website
date: 19.12.2016
name:saurav sawant
description:i am in need for a diploma level project for my final year.
the project must use webcrawling.
language:asp.net (c#)
database: sql server
try to use latest versions for both.
main site must contain a search box and display window
in search box if we type a product it must list all the sites with lowest price of product first and highest last.
the shopping sites must be offline as well since its diploma level project we cant afford to use amazon,ebay etc.
there must be one main site and 4 shopping created by developer :) contact me if u can code this.
email:
budget:$100 - $105

Dot Net Web Applicaion Developer
date: 19.12.2016
name:Abhishek Srivastava
description:Requirement for any type of Web Application Developer
likes.

E-Commerce, Job Portal, Matrimonial, Tour&Travel, Health , Education and so on..
email:
budget:$500 - $3000

.net application using mvc
date: 18.12.2016
name:Gaurav Raghuvanshi Raghuvanshi
description:We need a freelancer for integrating word functionality in .net application using mvc technology. please contact on 9819731531
email:
budget:$10 - $500

Web / Android / iOS Developer
date: 17.12.2016
name:Bharath
description:looking for a developer who can revamp the web & Mobile Applications and to add few new features
email:
budget:$70 - $200

App development
date: 16.12.2016
name:Kiran Kumar
description:Looking for an App developer at Chennai (India), to work on an idea, as an experimental project rather than for money, which will yield later...
email:
budget:$1 - $1

Android Java, Media Projection API
date: 14.12.2016
name:Saeed
description:I have a working code using Media Projection API and need an experienced android developer to remove warning/error messages for lollipop and marshmallo
I will also need help with compiling FFMPEG and rubberband for Android.
email:
budget:$0 - $500

speech to text converter
date: 14.12.2016
name:Neha Sharma
description:i want speech to text converter . tet must be in hindi font
email:
budget:$1000 - $5000

OSX app programming C++
date: 13.12.2016
name:Rohit Agarwal
description:I need someone to write C++ code on OSX
The project is an OSX developer tool called tz---nq---nj
You can read about it at khitchdee.desi
email:
budget:$1000 - $5000

scripting in linux
date: 13.12.2016
name:Adebayo Jeremiah
description:i am working with Empire-3.2 Malta [a Modular System for Nuclear Reaction Calculations and Nuclear Data Evaluations]. i have downloaded and compiled the tar.gz file, but i need to write a script that will execute only some subroutine files, leaving the others out.
these are the ORION and the TRISTAN codes in the program. they are originally individual scripts, but were made sub-routines in this modular system.
If you are good to go on this, contact me via my email.
email:
budget:$50 - $80

VB project development for trending and reporting
date: 10.12.2016
name:Basavaraju KM KM
description:I want a software which will take a data from Modbus TCP/IP device and plot a real time trend and display of values.The software should also save the report in Batchwise and should be able to retrieve on date wise or Batch wise based on the retrieval historical trend also should
email:
budget:$500 - $2000

Car Rental System in visual basic 2010
date: 10.12.2016
name:Amna Alameeri
description:I have problem in writing codes for my forms, I must create classes ,, I don't know how to write a code for it
email:
budget:$100 - $0

Developer
date: 08.12.2016
name: B Mac Gregor
description:Hi

I tried to send this under request for quote but on pressing that button it just hung my machine.

I have a requirement for a callable subroutine that I can load on my Android tablets which will when, triggered by my program, scan a server receipt directory and send the files therein to the offsite Microsoft Server via the GSM or WiFi network. After completion of the send the routine must pick up the files in the server send directory and copy them to the tablets

The same routine must cycle every x seconds to allocate for no network connectivity as well as details being input to the server send directory not emanating from a tablet send.

Please quote on the above and give an idea of the timeframe. If you have any questions please contact me via email.

Regards

Mac

B Mac Gregor
BAM Computer Services (Pty) Ltd
(27) (0) 824481030
mac@bamit.co.za

email:
budget:$1 - $100

IOS
date: 07.12.2016
name:jassim saeed al-saeed
description:The Idea of Photos Tags
Background:
There may be thousands of photos on my Smart phone and could become difficult to look for one or a few specific photos. For example, how could I quickly find the photos with my friend Jassim in my own Smart phone?
Tips:
1. The App will give me an option to input a Name tag while I first-time shoot a photo of my friend(or I receive the 1st photo from my friend), this photo should have a clear facial part;
2. Once I give a tag on my friend’s facial identification, this info should be recorded in my local phone or an online database of ‘facial identification’;
3. The App will automatically assign the Name Tag to the same friend’s photo, while I shoot or receive the 2nd (and afterwards) photo of that friend, by comparing the facial part against the existed ‘facial identification’;
4. While I want to find one specific friend’s photos from thousands of photos in my Smart Phone, I would just need to input the Name Tag in photo Gallery, and the App will only list the photos which contain this specific friend;
5. This App could apply for other characters like house pets etc.
Extension functions:
1. Considering if there could develop its online function, to share photos among friends by the link of ‘facial recognization’. For example, one of my friend post a photo (including his facial part) onto social media or this oncoming app; then this app could compare this friend’s facial part against the records in my Smart phone. Once matched, the app will give me alert so that I could see my friend’s new photo and possibly know where he is (if his Smart Phone turn GPS location on)
email:
budget:$100 - $4000

Microsoft Stack-Product development in Bangalore
date: 05.12.2016
name:raghu ram
description:Looking for a long-term resource who can work with product startup team to develop SaaS product

We are looking at following skill-sets: MVC, ASP.NET 4.5, jquery, html5, css3 with expertise in SQL database technologies

Work with the product development team in Bangalore
email:
budget:$100 - $500

ios
date: 05.12.2016
name:jassim al-saeed
description:The Idea of Photos Tags
Background:
There may be thousands of photos on my Smart phone and could become difficult to look for one or a few specific photos. For example, how could I quickly find the photos with my friend Jassim in my own Smart phone?
Tips:
1. The App will give me an option to input a Name tag while I first-time shoot a photo of my friend(or I receive the 1st photo from my friend), this photo should have a clear facial part;
2. Once I give a tag on my friend’s facial identification, this info should be recorded in my local phone or an online database of ‘facial identification’;
3. The App will automatically assign the Name Tag to the same friend’s photo, while I shoot or receive the 2nd (and afterwards) photo of that friend, by comparing the facial part against the existed ‘facial identification’;
4. While I want to find one specific friend’s photos from thousands of photos in my Smart Phone, I would just need to input the Name Tag in photo Gallery, and the App will only list the photos which contain this specific friend;
5. This App could apply for other characters like house pets etc.
Extension functions:
1. Considering if there could develop its online function, to share photos among friends by the link of ‘facial recognization’. For example, one of my friend post a photo (including his facial part) onto social media or this oncoming app; then this app could compare this friend’s facial part against the records in my Smart phone. Once matched, the app will give me alert so that I could see my friend’s new photo and possibly know where he is (if his Smart Phone turn GPS location on)
email:
budget:$50 - $100

Android Project: making a fully working Go application
date: 03.12.2016
name:Rajendra Singh
description:The Go game must implement
most of the rules of go but not all of them. I will also ask you to implement a couple of extra
features or sets of features to your game.
The game of Go is a centuries old game that is still popular today. It requires much
strategy and thinking ahead in order to win. The objective of the game is to surround more
territory than your opponent.
The game is traditionally played on a 19x19 board however, for our purposes we will
restrict this to 9x9 the recommended size of beginners. There are two players black and
white. The game proceeds until both players are not capable of making another move or
unless both players agree to make no further moves. Each players score is calculated by
totalling up the amount of territory the player has captured added to the number of pieces
that player has captured. You will not be required to implement the komi rule.
The general placement of pieces should not pose an issue. Where things will get
interesting is the capture of pieces or groups of pieces. A piece or group is considered to
be captured when there are no liberties left. In the case of a single piece this is a capture
on all 4 sides. In the case of a group this is where the perimiter of the group has no
liberties remaining. In the case of groups however, it is possible for a group to have eyes
(an empty space surrounded on all four sides by opposion pieces. Any group of stones
that has two or more of these eyes cannot be captured and removed. Player’s are
permitted to place there pieces anywhere.
You will also be required to implement the “ko” rule which states that “the stones on
the board must never repeat a previous position of stones” This is to prevent cyclical
neverending play and ensures the game will reach a conclusion. You will be required to submit an
archive file to the moodle (in one of these formats zip/rar/7z/tar.gz/tar.bz2/tar.xz).You are using android studio.
01) generate a custom view that is forced to be square in size. It should display a full 9x9
go board with the initial state of the game. It should accept user input for making moves
02) implement capturing rules for single pieces.
03) implement capturing rules for multiple pieces
04) alter your capture rules to prevent capture of multiple pieces where there are two or
more eyes.
05) implement the ko rule
06) build a UI around your custom view that shows the current state of the game and
provides options for resetting the game and finishing the game. It should indicate who's
turn it is and how many pieces and territory each player has.
07) add in timers and clocks for both players to implement speed go. Both players should
have 15 minutes to make moves the clock will start counting down when it is a players
move and will stop when the player finishes their move. If a player runs out of time then
the game finishes and scoring is made on the current state of the board

01) Document why you designed the project the way you did. This must include details on
the design decisions made and also the datastructures used to implement the game
mechanic
02) Document all methods in your java code, what algorithms you used and why.
email:
budget:$75 - $125

CMS system and WEB+APP for Clients
date: 29.11.2016
name:Ajay J
description:A CMS system for internal operations and WEB + APP for Customers
email:
budget:$2000 - $6000

PART TIME PROGRAMMERS FOR DOT NET / DELHI
date: 28.11.2016
name:
description:Required DOT NET developers to complete modules of a project that handles data management;

Must be experienced in DOT NET coding skills with SQL SERVER backend and also must be capable of handling EXCEL file management for import handling;

Work to be completed in about 15 days max.
email:
budget:$100 - $200

Asset Management
date: 27.11.2016
name:Peter
description:I am looking for addition to Microsoft Asset Management template available at https://support.office.com/en-gb/article/Use-the-Access-Assets-Database-template-6e99a32c-fbda-48a2-89b0-ef0d68b381ec
Need to track (the trail of who was the owner of this software with start and end date) all the asset has been when we go to specific asset
Nothign jazzy due to access and financial constrains, Can not install softwares like VB, Oracle, etc
Any suggestions would be of great help. If you have something similar i would love to use it
email:
budget:$1 - $10

web application on banking
date: 25.11.2016
name:raghavendra kt
description:bulk insert to sql table ,from xxxx.txt file it is fixed length not separated by coma ,its separated by space,
email:
budget:$1 - $100

eigrp based routing of virtual network using packet tracer
date: 24.11.2016
name:SIDDHARTH VERMA
description:I have all the documentation , i just need a working module for this .
email:
budget:$10 - $100

Microcontroller based project
date: 23.11.2016
name:Arun Kumar
description:We are manufacturers of Welding machine where knobs are used for controlling output of the machine. We wish to eliminate all knobs and provide required analog voltage to our card which is given by the pot now. Also it should be able to generate wave shapes such as rectangular, Square, trapezoids etc which can be applied to the card for generating such outputs from the power source. 100 Memory locations to store various settings. Human Machine Interface with touch screen for entering the data etc.
email:

HTML UI development
date: 21.11.2016
name:Kanishka Ghosh
description:Create HTML UIs for a responsive desktop app and a hybrid mobile app. Not very complex ~ 15 distinct templates
email:
budget:$100 - $500

small form with frontend display
date: 21.11.2016
name:Manfred Reinisch
description:Hi,
I will be in Mumbai on 4th and 5th of Dec. During these days i would like to meet a freelancer to solve a very small problem for me and to discuss further working relationship for other projects.

This time i need a formular on a WP site where people can select a date an make reservation for an empty carseat. On the frontend it should be immediately visible when someone puts in some names, cancellation possibility as well.

I am looking for someone who is reliable and trustworthy. If you are interested contact me for further information.
Thx
Manfred
email:

Quiz Portal in java
date: 21.11.2016
name:Sweety Kumari
description:I have to make a quiz portal, using hibernate and jsf.
email:
budget:$10 - $20

hotel booking
date: 19.11.2016
name:divya rao
description:
email:
budget:$0 - $75

JavaFX and JDBC for a student exam system
date: 18.11.2016
name:Swathi Y
description:For this project your goal is to develop a quiz creation and
assessment system (QCAS) for a University that is able
to let instructors create tests for students and produce analytical
charts and reports analyzing student performance. Students will also
be able to us the system to practice and generate some reports on
their performance.
The QCAS system essentially allows an instrutor to login and import
a text file containing csv data (see sample csv file provided on
BB). This csv file contains quiz questions (including code) with
answers. Instructors will import quiz questions which will be added
to a question bank (a relational database). Instructors will also
be able to login to the system and get information about students
who have been taking quizzes using the system and print reports to
a pdf file. The dashboard will provide charts describing general
student performance:
• Number of tests taken during the last month,last quarter and
over the last year.
• Average student scores over last month, quarter and year.
• Scores by level of difficulty (each question has a difficulty
level – easy, medium and hard).
• Students passing and failing over different periods.
• Any other statistic you might find interesting.
The QCAS system will also allow students to login and take quizzes.
Students will have the option to select the number of questions
along with the difficulty level (easy, medium, hard or mixed). The
system will present quiz questions one at a time. There are four
types of questions:
• Multiple choice (only 1 answer)
• Multiple answers
• True/False
• Fill in the blanks (a string) - QUESTIONS WILL ONLY HAVE 1
BLANK
95-712 Object Oriented Programming Java
2
The system must randomize quiz question order and answer choices
each time a quiz is started by the user. At the end of the quiz
students should be presented with a report of their performance
including charts. Students must also have an option to print the
report to a pdf file. Finally student performance must be saved on
the QCAS database.
Specific Requirements:
• System should support CSV import even in the presence of commas
within values and extra quotes within values. You could use an
external library like Commons CSV -
http://commons.apache.org/proper/commons-csv/
• Pdf export can be implemented using Apache PDFBox -
https://pdfbox.apache.org/
• A well-designed GUI must be included. Java FX is the preferred
option and it includes charts and other features.
• Questions that are imported must be added to the database.
Student information and quizzes taken (including performance
in each quiz) should be recorded in the database). It is
preferable to use the database in embedded mode for this
project. However testing is easier in network mode.
• The system should have a login screen which supports 2 types
of login:
? Instructor (Allowed to import csv and provides
information on question bank, show performance of
students in a dashboard, produce a report in pdf)
? Student (Take a test, Choice of how many and types of
questions, Record answers in the Database, Assess
performance, record grade, correct and incorrect
answers, produce a report with grade incorrect and
email:
budget:$100 - $200

SQL Assignment
date: 18.11.2016
name:chitra singh
description:I have an assignment to convert multiple csv files in various folders into SQL database. Also, to provide a database schema for the same.
Let me know if you can do it. The due is tomorrow.
email:
budget:$50 - $100

Java, Salesforce
date: 18.11.2016
name:Jagan
description:
email:
budget:$200 - $300

Replicated Reliable Banking System
date: 16.11.2016
name:deep m
description:

Replicated Reliable Banking System
You may work in the same teams as you did the in-class presentations. The project must be done in C/C++ in a Linux or Unix environment. Neither Java nor Windows are permitted. You may use threads (Pthreads) instead of separate processes for each client request. Messages must be in the form of RPCs or UDP sockets using C. I think RPCs over UDP is probably the most efficient communication once you understand the interface.
The goal is to implement a reliable banking system. Keywords for this assignment are fault-tolerance, resynchronization using logs, centralized locking, reliable.
Create an online banking system with three replicated servers and a coordinator. The purpose of the coordinator is to act as an interface to the bank servers. Each client sends its request to the coordinator which in turn forwards the request to the all three servers. Additionally, the coordinator fetches any response from any of the active servers and sends it back to the client.
1. Replicated Database Servers (3)
o Replication:
All accounts of the bank are replicated on three servers. For the assignment assume that all accounts are already created and the client operations are for deposit, withdraw and balance check . Further, information of accounts is to be stored and updated in a file (and not in memory) as we are going to test for fault--tolerance (where servers fail and wakeup and need to restore state of previous operations.), i.e., if system started with account# 101 having $100, and when server I crashed it had $150, on wakeup server I should know that account# 101 balance is $150, unless server 2 or 3 updated it (which is dealt with using logs at both servers).
o Logging:
Each server maintains a log for each operation performed, which can be of the form
o Operation# Account# Balance
o ------------------------------
o 1 101 2000
o 2 102 5000
o 3 105 500
o .
o .
o .

The log must be stored/updated in a file for persistence. Each server uses a different log file. They do not share a single log file.
Additionally, all account information is stored in files and hence all update operations also modify records in the account information file.
o Resynchronization and Wakeup:
When a server fails and wakes-up it needs to resynchronize with the other replicas in-order to restore a consistent state for each account.
On wakeup, the server sends an ALIVE message to the coordinator to signal its wakeup.
Next, the server sends a resynchronize command to the other servers, along with the last operation number in its log. The servers that had not failed then look up their logs and send all [account #, balance] tuples which the failed server has not seen. The operation number sent from the failed server is used to get the starting point for the log replay. The servers send all log tuples and also results of operations being performed when the resynch command arrived.
The assignment assumes only one server can fail at a time and hence at least two servers always service requests and keep the log up-to date.
Once the resynchronization is complete, the server can flush(delete) its log as all three servers are consistent. Also, the server that had failed now being in a consistent state sends a RESYNCH-DONE message to the coordinator.
2. Coordinator
Each client request is forwarded to the coordinator, which in-turn forwards the request to all three servers or the servers that have not failed.
o Account--level locking:
For each request that reaches the coordinator, it locks the account the operation is going to update (withdraw/deposit operations). So, if two operations for the same account simultaneously arrive at the coordinator, one of them will be queued till the first one finishes and the lock released. Locking will have to be done through message passing since the servers and coordinator should be on different hosts.
Each server signals an end-of-operation with an OP-DONE message, which can of be of the form [DONE, Account#]. On receiving OP-DONE messages from all awake servers, the lock on the account is released.
o HeartBeat Messages:
The coordinator uses periodic heartbeat messages to determine the state of each server. Based on the number of servers (2 or 3 in this case), it waits for the corresponding OP-DONE messages to release the lock. Additionally, the periodic heartbeat messages will indicate whether a server failed after getting the lock. In this case, the coordinator only waits for OP-DONE messages from the alive servers.
o Resynchronization: When resnchronization is in progress, no requests are forwarded by the coordinator. The resynchronization starts with an ALIVE message from a server and ends with a RESYNCH-DONE
o Client Response:
The coordinator forwards the result of the operation after the locks are released and operation completed to the client.
________________________________________
Some things to keep in mind:
• Assume each server has the same file with all records and account information at startup. The records in the file get updated on each update operation.
• To keep the replication simple, assume clients do not create new accounts and only query or update existing accounts.
• The system should be fault tolerant, meaning no operation should fail or make the system inconsistent due to failures.
________________________________________
3 Evaluation and Measurement
Correctness
Demonstrate that your system works correctly according to requirements stated in the description and functionality of the system. In particular:
1. Show that the bank database is distributed and replicated, operations are sent to all three servers or two servers (based on failure).
2. Demonstrate that the account-level locking mechanism works correctly. i.e: show (via output snapshots) that simultaneous updates to an account are handled correctly by the locking mechanism.
3. Demonstrate the logging mechanism, how logs are updated on operations and maintained.
4. Demonstrate the proper functioning of the resynchronization step.
- between the 3 servers
- no requests being sent by coordinator
5. Demonstrate the working of heartbeat messages, by showing that a coordinator initially waits for 3 OP-DONE messsages, but a heartbeat discovers a server failure and waits for only 2 OP-DONE messages.
Evaluation
Additionally, experiment with your system to measure its performance in different scenarios and test conditions.
Design and present results of your own experiments to demonstrate the characteristics of the system. A few examples are:
1. Measure the average time of requests, when all servers are on and no queuing at the coordinator.
2. Measure the average time of requests, when all servers are on and there is queuing at the coordinator (i.e., queued due to account-level locking).
3. Keeping request rate of each client constant, vary the number of clients and measure the latency of each request.
4. Keep number of clients constant, but vary request rate to measure latency of each request.
5. Measure how much time resychronization requires by measuring the time between ALIVE and RESYNCH-DONE messages at the coordinator.
How does this change with log size?
It is important that you describe the results of your experiment and not just describe what the experiment did. Please state what the experiment demonstrates or what you expected and what was seen etc.
These are guidelines only, so be creative in what can be evaluated and measured as part of your experiments to test the system.
________________________________________

email:


This website uses cookies to ensure you get the best experience on our website. Learn More.

Got It!