Skip to content

edbrannin/contacts

Repository files navigation

Build Status

Setup

  1. Create instance/config.py with the following values:
    • FACEBOOK_APP_ID
    • FACEBOOK_APP_SECRET
    • ALLOWED_USERS (a list of email addresses)
    • SECRET_KEY

Requirements

Ted says:

I talked it over with David, and our business rules are about the same as they were for the original contacts list. In brief:

  1. Secure authentication.
  2. Display all contact information in a table on one page. (This allows for in-browser searching, which is more than good enough for our purposes.)
  3. Organize contacts into different groups using tags; display all contact information from a given group in a table on one page.
  4. Add, remove, and edit contacts and contact information. (The “Notes” field has been especially helpful.)
  5. Sort on different columns, especially last name and zip code. (I implemented this client side using a JavaScript library, which has worked just fine.)
  6. Generate mailing labels for a given group in PDF.

If you set something like this up in Python and gave me a brief orientation on how it operates, I could do a lot in the way of maintenance and troubleshooting. (I’ve done some work in Python, so I wouldn’t be as out-to-sea as I was on the Ruby contacts list.)

Also:

You can probably drop "active," "verified," and "added" from the main table view. We never used those much. (Might have done if there had been a "set to today" button.)

I'm just adding this sentence to check if it winds up in the container.

Other considerations

Roadmap

Release 1 (DONE)

  • Read-only
  • List all contacts
  • Show contact details (no tags)

Release 2

  • Edit contact details
  • List contacts by tag
  • Edit (Audit) log for contacts

Release 3

  • Show tags for contact
  • Edit contact tags

Release 4

  • Add contact (and tags)

Release 5

Release 6

  • UI for PDF printing
  • Fix Create Contact

Later

By Component

Model

  • Add a person
  • Select all people
  • Select all people with one tag
  • ...with any number of tags
  • Edit a person's details
  • Edit a person's tags
  • (Soft?) delete a person
  • Sort by columns (last name, zip code, etc) (in-browser?)

API

  • Facebook auth
    • Block unathorized access
    • ... accepting only pre-configured accounts
    • Log out
  • Add a person
  • Select all people
  • Select all people with one tag
  • ...with any number of tags
  • Edit a person's details
  • (Soft?) delete a person
  • Sort by columns (last name, zip code, etc)
  • Generate a PDF of mailing labels for a given tag's people
    • Tag URL (right-click, copy) + .pdf

UI

  • Facebook auth
    • Block unathorized access
    • ... accepting only pre-configured accounts
    • Log out
  • Add a person
  • Select all people
  • Select all people with one tag
  • ...with any number of tags
  • Edit a person's details
  • Edit a person's tags
  • (Soft?) delete a person
  • Sort by columns (last name, zip code, etc)
  • Generate a PDF of mailing labels for a given tag's people
  • Hide phones unless clicked(?) (for privacy reasons)

Future