I have a Django project for a CRM similar to [url removed, login to view], with more features but for just a single-organization.
Currently the CRM uses revisions for tracking change history of models. E.g. a Contact object has one or more ContactRevision objects linked and the ContactRevisions contain the contact's name etc. When a contact's info is edited, the Contact object is unchanged and instead a new ContactRevision is created with the updates.
The current scheme is inefficient and makes queries complex - e.g. searching for a contact by name requires either hopping from each Contact to its latest ContactRevision, or filtering ContactRevisions once by name and then for those which are a latest-revision.
The project is to refactor the models and the code to allow direct, simple queries (as if there are no revisions and objects were "flat"). Revisions' data should still be saved in a way that at most slightly slows down the saving of changes (as opposed to slowing down data lookups). To achieve that you could make use of e.g. the Reversion module, or to manually create a parallel table for each core model, add to it a fkey and creation/modification fields, and add a mechanism of automatically "spawning" a copy of the core model to the parallel table for each edit.
Some of the code which will require adjustment to the updated models includes raw SQL, meant to optimize slow queries. After the update in models some of these raw SQL queries could easily be replaced by short, naive Django ORM queries, but there may still remain a few queries that you'll need to update in raw SQL.
I estimate this project at 75 hours for a smart, experienced developer.
To bid please first send me a comment with the following:
? Describe your experience with Django till today. Please include links to live Django apps that you've developed.
? Describe your skills in complex SQL queries.
? In what intensity can you work on this project (e.g. number of hours per week), and when can you start?
? Assuming you will review the code and estimate it's a 75 hour project for you, what would be your bid?
After getting suitable answers to the above I will send you an NDA and then the code for your review before negotiating the exact bid amount.
Thanks for considering this project.