Features and Systems¶
This page explains features across all three systems of the Event Locator:
- Base System
- Event Curation System
- Search System
Features are grouped together by which one of the three user groups they impact:
- Families
- Program Providers
- GRASA and Monroe County Staff
Families¶
Search for different events.¶
- Status: Implemented
- Technology decision: Haystack, Whoosh
- Relevant domain(s): Database
- Summary of approach: Use Django Haystack to search the database of events using a keyword match search.
- Completion criteria:
- Unauthenticated user runs successful search query to return results about after-school programs in an area.
- Information is provided if it exists; the user is informed if it does not exist.
Apply filters to better discover events that interest a user.¶
- Status: Implemented
- Technology decision: Haystack, Django Forms, Jinja
- Relevant domain(s): Database
- Summary of approach: Create Haystack search filters that mirror metadata we save in our database.
- Completion criteria:
- Unauthenticated user alters search query by choosing from a list of preset filters.
- More detailed information is discovered in search when filters are displayed.
Find information to learn more about a specific event.¶
- Status: Implemented
- Technology decision: Django Forms, Jinja
- Relevant domain(s): Database, front-end
- Summary of approach: Create a unique, addressable page for every event by pulling data from the database and injecting it into front-end HTML with Jinja inclusions.
- Completion criteria:
- Unauthenticated user is able to navigate to an event’s unique page from search UI.
- Any user can share a direct link to event page details with another user.
Program Providers¶
Add new events with specific metadata into system for approval by administrators.¶
- Status: Implemented
- Technology decision: Django Forms
- Relevant domain(s): Full stack
- Summary of approach: Create Forms to validate user input and create new events in the events database table.
- Completion criteria:
- Provider is able to log into application.
- Provider submits new event for review with required details:
- Title
- Description
- Website
- Address
- Suggested age groups
- Activity type
- Etc.
Update information for existing events in system for approval by administrators.¶
- Status: Implemented
- Technology decision: User authentication modules provided in Django, Django Forms for basic user input
- Relevant domain(s): Full stack
- Summary of approach: Allow an authenticated user to edit Forms for events they themselves have created.
- Completion criteria:
- Provider is able to log into application.
- Provider edits an existing event that they already contributed.
- Event re-enters review queue for admin users.
GRASA and Monroe County Staff¶
Review and approve submitted events.¶
- Status: Implemented
- Technology decision: User authentication modules provided in Django, Django Forms for managing event data, email (via Mailgun)
- Relevant domain(s): Full stack
- Summary of approach: A status field in the database will be edited for an event depending if it is pending review, approved, or rejected; only approved events appear on the public site.
- Completion criteria:
- Admin is able to log into application.
- Admin is able to edit a pending event and change its status (approved or rejected).
- Provider is emailed when their event status is changed.
Confirm new provider accounts.¶
- Status: Implemented
- Technology decision: User authentication modules provided in Django, email (via Mailgun)
- Relevant domain(s): Back-end, database
- Summary of approach: Allow anyone to self-register on the website using Django Forms to gather information about the user and saving the User object to the database when registration process completes.
- Completion criteria:
- Admin is able to log into application.
- Registered user is able to log in as a provider once admin confirms user’s registration.
All users¶
Mobile-friendly user interface.¶
- Status: Implemented
- Relevant domain(s): Front-end
- Summary of approach: Ensure web application appears correctly on modern smartphones and mobile devices by manual QA testing.
- Completion criteria:
- Core functionality works smoothly on mobile device as it does computing device.