Your task is to design and build a simple Customer Relationship Manager (CRM) tool that can be used by organisations to keep track of their customers and partners and the interactions between them.
You are expected to produce a system with the following features. The user should be logged in to access any functionality:
- The home screen should list all the contacts and include:
- Their name.
- The name of the company (if apropriate).
- Their link to the business.
- The last date they were contacted.
- There should be a button labelled "Add new contact" which should take the user to a new screen where they can add new contacts. They should be asked to enter the following information:
- The name of the contact.
- The name of the company (optional).
- Their address (optional).
- A contact phone number.
- A contact email.
- When a contact from the list on the home screen is selected, the user should be sent to a details page which lists all the information held on them.
- At the bottom of this screen there should be a multiline text input where the user can enter details of any conversations that were had with the contact.
- There should also be a dropdown list containing the phone number and email so the user can specify how the communication was made.
- Each record should be flagged with the name of the user who added it.
- When the form is submitted it should also store the current date and time which should be used on the home screen as the last date of contact.
- There should also be the option of adding a photo.
You are now expected to add the following additional features:
- When you create a new contact you should have the option to specify the frequency you want to get in touch with them, choices should be: weekly, fornightly, monthly, bi-monthly, quartly or half-yearly. Each time you leave a note this should reset the clock.
- There should be a clear indication in the list of customers which ones are overdue for a chat. This should also be clearly shown when you open the details page.
- There should be a way to edit the contact details or delete a contact (with a confirmation message that this is what you want to do.
Now its time for the advanced features:
- Add a map that has pins for each of your contacts showing where they are based. Clicking on a pin should show the summary information (name, company) and there should be a way to get from the map to the details screen.
- It should be possible to add unlimited phone numbers and email addresses with each being given a label (such as "work phone". When adding a note the dropdown list should include options for all modes of communication.