Comp150CPA Homework Exercise 5: Data Access Modeling


In groups of 2-5 people, please create a deployed "Free Force.Com" application that manages individual expense records for consultants. There should be two Profiles: "consultant" and "administrator", both of which are based upon the "Free Force user" profile. Each expense record should include an expense amount and a string for the type of expense. Each expense record should also have a field "paid" that is either "true" or "false".

Your users should have the following behaviors:

  1. Consultants can create and edit expense records, but cannot set "paid" to anything. By default "paid" is "false".
  2. Administrators can see but cannot create or edit expense records, except that they are able to set "paid" to "true".
  3. Consultants can see their own records, while Administrators can see everyone's records.
Let 'XXXX' represent something unique to your group, i.e., one username. Please set up one user and one administrator for testing:
  1. Make user (email: a regular user.
  2. Make user (email: an administrator.
(You should also set up your own, private user and administrator for your own testing.) will email us a preliminary password for each user. It allows multiple user roles to have the same email address. Usernames must look like email addresses but need not be valid. Please make them unique by choosing some unique XXXX.

Extra Credit

For 10% extra credit (1 point), use a "workflow field modification" to automatically record the current date whenever an administrator marks a claim as "paid".


There is more than one way to specify business logic. The primary way that business logic is specified in is to create access roles and define what data they can manipulate. In this case, the business logic is that records can be created by consultants, but they cannot mark the records "paid" (or "unpaid").

I've chatted with to ask permission and the representative suggests that when you sign up for an account, you list your company as Tufts University but make it clear that you're a student, so the sales staff won't bother you. Each free account is allowed to deploy one service with up to 100 users. Follow the instructions on getting started, and then modify them to complete the assignment.

There are two kinds of free accounts: "free" and "developer". For this assignment you'll need a "free" account (acquired by signing up at This gives you the ability to deploy an application based upon built-in features, with up to 100 users including, e.g., me! By contrast, a "developer" account (acquired through signup at allows one to develop applications for personal use, but not to deploy them for business use. This kind of account will not be useful for this assignment.

Submitting completed assignments

Alas, the new submission system is not working yet and we will submit this one as a saved file. Click here to fill out a form that -- when submitted -- generates a printable form that can be saved to a file, e.g., hw07.html. Then type:

provide comp150cpa hw07submit hw07.html 
on linux or sun. Completed assignments will be printed, graded by hand, and scanned back into the system. The assignment is due on Monday May 2, 2010 at 11 pm.