-
Notifications
You must be signed in to change notification settings - Fork 0
Requirements
We already have Task and Wiki code in our project. Both already have comments model. I gave you only DB structure from it. We need generic module which is connected to modules based on EMAIL, so that people can work directly from emails.
In each model with comments – tasks and wiki, we have a function called send_to which determines for this object prepare list of email ids whom to send email 1. Wiki => whole project 2. Task => creator and assigned to
Need to have 3 generic functions:
1. CreateEmailChain (object, modulable_type)
The focus is that in the create function of wiki and task controller, we will call this generic method CreateEmailChain (object, modulable_type). The CreateEmailChain method will get the TO list from the object.sent_to function. Subject line of the email chain would be depending on “[Modulable_type] : subject”… High level suggestion. Some mechanism to route email to right modulable_type and moduable_id
2. AcceptEmailChain: One of the end users who has received email, replies to it from his gmail. The application accepts the incoming email and adds a comment. If the email has attachments, it stores the attachment. Note – we can receive more than one attachment from email. Return back any email with an attachment more than 10 Mb and no executable files allowed.
3. ReplyToEmailChain : In the update, delete controller methods we will call this method will send update on same email chain.
Each comment can have at max 1 attachment. Enhance functionality of comments to be able to hold files. This way, an incoming email can held with a comment. And a comment added with a file can be sent as an email with attachment.
Infrastructure
Use Local SMTP
Help us deploy the code to our server – this part will be delayed. Our infra guy will be available on August 2nd week.
Performance:
Push email sending as background job. Please review http://railscasts.com/episodes/171-delayed-job (this link goes outside odesk.com) + you need to mark that each email has been sent or not individually. Because in case you retry and it gets hung then the emails will go in infinite loop.
knowledge transfer
Perform knowledge transfer of code design
Security
All models should be scoped.
Our project id is a long hashed key, on integrating your code with our code… we might need support to handle this.