python django jsonrpc proof of concept

CLOSED
Bids
3
Avg Bid (USD)
$368
Project Budget (USD)
$30 - $5000

Project Description:
I'm looking to foster a long term relationship with a vendor to outsource some of our development work to. We've developed, and are continuing to develop, a system using python/django. I'm looking for a developer, or team, that has good experience in python and django.

This project is fairly simple. Create a method called question_new, that will save a question and its answers. Create another method which will update the question/answers based on the model details. When a question, or its respective answers, is updated, the old version should be saved and stored. Use the django reversion extension (quite well known and found on github)

Your code should be able to take in the form values from and save them to the database. in addition to this, it should be able to update the information if it gets edited, for example, if the question text changes, the question text should get updated. If a new answer is created, or removed, it should likewise be removed in the database.

The django model looks is included in the next section.

Also, I require for the code to come with test cases testing the various scenarios (creating a new question, with 2 answer options, updating the question, updating the text to 1 answer, removing 1 answer, and adding another). That is 4 test cases.





## Deliverables

django model for question and answers:




class Question(models.Model):
QUESTION_TYPES = (
(u'T', u'True or False'),
(u'C', u'Multiple Choice'),
(u'S', u'Multiple Select'),
(u'B', u'Fill in the Blanks'),
(u'L', u'Connect the Answers'),
(u'M', u'Manually Marked'),
)
type = models.CharField(max_length=1, choices=QUESTION_TYPES)
text = models.TextField(null=True, help_text="Question text which is displayed")
score = models.SmallIntegerField()
feedback = models.ForeignKey(Feedback, null=True)
randomize = models.BooleanField(default=1, help_text="Randomize the order of the answers for this question")
is_published = models.BooleanField(default=1, help_text="If disabled this question cannot be chosen for a paper")
version = models.PositiveSmallIntegerField(default=1)
created = models.DateTimeField(auto_now_add=True)

def __unicode__(self):
return self.text[:10]+' (id: '+str(self.id)+')'



class Answer(models.Model):
question = models.ForeignKey(Question)
text = models.TextField(help_text="Answer text or id (if applicable)")
score = models.DecimalField(max_digits=4,decimal_places=2)
is_published = models.BooleanField(default=1,
help_text="If disabled this answer can't be selected for the related question")
sequence = models.PositiveSmallIntegerField()
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)


def __unicode__(self):
return 'Answer to q '+str(self.question.id)+' is: '+self.text[:20]

Skills required:
Engineering, MySQL, PHP, Project Management, Python, Software Architecture, Software Testing, Web Hosting, Website Management, Website Testing
About the employer:
Verified
Public Clarification Board
Bids are hidden by the project creator. Log in as the employer to view bids or to bid on this project.
You will not be able to bid on this project if you are not qualified in one of the job categories. To see your qualifications click here.