Find Jobs
Hire Freelancers

Perl Contacts Cache Module

$250-750 USD

W trakcie realizacji
Opublikowano ponad 11 lat temu

$250-750 USD

Płatne przy odbiorze
I have a multi tenant, web based, Perl application that integrates with 37 Signals' Highrise CRM. I need a new Perl module that implements a caching layer between my application and Highrise, that is also flexible enough to be extended to other web based contact management systems in the future. The module must provide methods that: 1. Sync the local cache with Highrise. The synchronization method(s) should: a. Obtain all new entries that have been added to the specified Highrise account (defined by the contacts_owner_id) since the last sync b. Update any entries that have changed since the last sync c. Delete any entries in the local cache that have been deleted from Highrise since the last sync 2. Allow new entries to be created a. New contacts (people or companies) must be created in the local cache and sent to Highrise. The correct account will be specified by passing in the contacts_owner_id for the account. b. The method needs to return the contacts_contact_id for the new entry 3. Allow contacts to be updated a. The method will accept the contact_contact_id for the contact to update, as well as the information to be updated a. When a contact is updated locally the update needs to be sent to Highrise 4. Allow contacts to be deleted a. The method will accept the contacts_contact_id for the contact to delete b. When a contact is deleted locally the deletion needs to be sent to Highrise 5. Allow contacts to be read a. One method should provide a list of all contacts for a given contact_owner_id. The list should contain the contacts_contact_id, first_name, last_name, and type b. Another method should provide detail for a given contact_contact_id. The returned hash ref should contain fields for all contact details, including array refs for the emails, phone numbers, and addresses for the contact. In addition to supporting Highrise, the system MUST also have a mode that allows contacts to be created/modified/deleted locally without being stored in Highrise. Basically, this module needs to abstract away the interaction with Highrise or (with additional changes to be made in the future) other contact management systems, and prevent my application with a consistent interface for accessing and modifying contacts. The module must be capable of obtaining thousands of contacts from Highrise (the Highrise API limits requests to 500 contacts at a time so pagination must be implemented). It must gracefully handle errors. The contacts should be locally stored in a database with the table described in the attached file. The database will be accessed through a DBI database handle passed to the methods. The contacts_owner table described in the file provides a way to associate a Highrise (or other system) account with a group of contacts. The URL and api_token are the values that should be used to connect to the Highrise service for that account. If the type field of the contacts_owner record is local then instead of any contacts with that contacts_owner_id being stored in Highrise, they should only be stored locally. Please contact me with any questions. I want to make sure we get the requirements worked out clearly to ensure that the module functions as needed.
Identyfikator projektu: 4251617

Informację o projekcie

2 ofert
Zdalny projekt
Aktywny 11 lat temu

Szukasz sposobu na zarobienie pieniędzy?

Korzyści ze składania ofert na Freelancer.com

Ustal budżet i ramy czasowe
Otrzymuj wynagrodzenie za swoją pracę
Przedstaw swoją propozycję
Rejestracja i składanie ofert jest bezpłatne
Przyznano:
Awatar Użytkownika
I'm experienced perl web developer and linux administrator,15+ years of experience. Your specification looks almost clear. There may be problems with synchronization times, so maybe that process should be asynchronous, with background daemon. So your functions should change from one function for making synchronization, into one for starting synchronization, and another one for checking if synchronization has finished. Or some callback method. Depends on runtime environment. Due to asuumed large scale, timeouts may be a problem and correct synchronizing architecture is crucial here. Hope, this system helps to find object modified since some time, otherwise some changes to local database may be needed (extra fields) and process may be even more time consuming.
$750 USD w 15 dni
0,0 (0 opinii)
0,0
0,0
2 freelancerzy składają oferty o średniej wysokości $750 USD dla tej pracy
Awatar Użytkownika
Hi, I am a Perl+ MySQL developer with close to 8 years experience spanning diverse areas including webscraping, processing huge data sets (running into hundreds of GBs), implementing webservice for telecom service providers etc. I am confident of providing good service to you in this project. Please consider me for this task. Thanks, ppan279.
$750 USD w 15 dni
0,0 (0 opinii)
0,0
0,0

O kliencie

Flaga UNITED STATES
Fullerton, United States
4,9
16
Zweryfikowana metoda płatności
Członek od kwi 2, 2007

Weryfikacja Klienta

Dziękujemy! Przesłaliśmy Ci e-mailem link do odebrania darmowego bonusu.
Coś poszło nie tak podczas wysyłania wiadomości e-mail. Proszę spróbować ponownie.
Zarejestrowani Użytkownicy Całkowita Liczba Opublikowanych Projektów
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Wczytywanie podglądu
Udzielono pozwolenia na Geolokalizację.
Twoja sesja logowania wygasła i zostałeś wylogowany. Proszę, zalogować się ponownie.