Goals, user stories tasks, etc. - TechAtNYU/intranet GitHub Wiki

Overall Goals

  1. Save time by automating tedious tasks
  2. Automate best practices or encourage them through the design (e.g. surfacing relevant resources/tips in the moment; setting up good defaults; etc.)

Tentative User Flow

version 1 user flow

Content Tasks

  • Figuring out which content should be linked to from, or embedded into, which screens in the interface. Designing an IA.
    • Maybe:
      • “Plan an Event” (Find Speakers, Find Venues)
      • “Schedule an Event”
      • “Promote an Event” (Generate Digest, Generate Fb Events)
        • What about sponsorships and other bd tasks?
    • Getting leads to update content (e.g. from the prior best practices they wrote). Governance!

Adding currently loose/unstructured data (e.g. about past leads or peoples’ contact info) into the API.

Use Cases (These should probably be regrouped by user type/persona)

Help board members plan events

  • discover past speakers from tech@nyu events, and filter the list by which [initiatives’?] events they’ve spoken at and which skills they have, e.g. design, programming, game artistry, etc.
  • lists prior tech@nyu venues, and the eboard members who’ve arranged events at each one + whether some other team is already bugging that company

Manage the workflow for scheduling & promoting events

  1. Allow the user to add the event into the system.
    • Where possible, pre-populate parts of the event form based on who’s signed in (e.g. if they’re only on one team—and it’s not marketing—pre-populate the event belong to that team. Or, if that team typically has events at a particular time, pre-populate the event’s date/time fields).
    • Warn of scheduling conflicts (with either draft/published events, or with another team’s default time).
      • Can we make default time work, or do we need a way to batch add placeholders? Consider batch adding placeholders like making a roadmap? Show teams their roadmaps? (I.e. some view of the calendar for just their initiative—doesn’t need to be a full-featured calendar, it can just list their events, but it should show the relative time between events, e.g. if they’re planning to skip a week)
  2. Once added, syndicate it to other channels…
    • Send attendees (from fb?) text message reminders? Encourage them to fill out their skills?
      • Have external users always linked to FB accounts? (I don’t want them to be either fb or twitter, because then we’ll have to handle duplicates.)
    • Generate event text that can be copy/pasted directly into Fb? And email the marketing team to note that this new event has been added (and needs a fb event).
      • Not until they make that event, and add back the RSVP url, does it go public. [They have to click Publish! otherwise it’s draft.]
      • Marketing team should have a view that shows all draft events! (or all w/o an rsvp url)
    • Auto publish to Meetup and Orgsync?
    • Generate digest text that can be edited (e.g. to add fun copy and third-party events) and then copied right into Mailchimp

Attendee Tasks/Collecting User Data

  • Allow a User to add his/her skills and wantsToLearn; fill out gender or other profile info
    • Infer some based on the events they attend?
    • Just put up a form?
  • Allow newsletter signup
  • Track attendees (repeats, aggregate numbers)
    • Read Fb attendees and automatically match them with members in our system? (If we can’t match, just create a user.)
    • generate a sign in page for each event [public url, always tnyu.org]
      • just a redirect to the fb event page!!
      • if two events happening concurrently, a little picker that then just redirects to the fb page

Marketing sites

  • Add projects made by members and demoed at events
  • Possibly allow anyone to add a project, with an internal moderation queue

Store all Eboard Members’ Contact Info & Surface it when Relevant

  • Have a profile they have to fill out on account creation…
  • To Reach out to a prior board member for advice or an intro (from team/event/venue pages)
  • To contact board members to invite them to something?

Admin Tasks

  • Taking attendance at an eboard meeting (or taking attendance at an internal event in general). This has very different requirements than taking attendance at external events, because the possible attendees for internal events are drawn from a fixed set of people already in the db (i.e. eboard or freshman circuit members) and because checkin may need to be controlled by the person running the meeting/event, not each individual checking themselves in, in case attendance is used for accountability.

  • Taking notes during an eboard meeting

  • Helping the president run an effective eboad meeting (i.e. a template for the standard meeting format, a way to automatically generate a handout for the meeting, etc); could be integrated with best practices for discussing/amending policy proposals, including auto-generating a ballot for the meeting or making a UI that makes it easy to add and view policy proposal amendments in real time.

    • Note: for the use cases above, would it be helpful to have a dedicated EboardMeeting model that would be a sub-type of Event?
  • Add a person to a team and remove a person from a team. The former translates, in db terms, to creating a teammembership on a team, while the latter translates to "setting the enddate of an existing team membership to the current date".

  • Show success metrics

    • report total number of rsvps, total list of speakers, full event list for nyu budgeting
  • Link to passwords, recurring reminders (e.g. to renew services!), and treasury stuff??

  • Lots of stuff about recruiting; see who's on the board (and each team) and the size of those teams. For example:

    • Seeing the current size of the board, so that we can combine that with our feeling of whether we're too big or to small to produce a goal "ideal size" for the board. Or, if we already have an ideal size, seeing the current size so that we can know how many spots are left. Seeing the current size can also help for advanced planning (e.g. roughly how many retreat spots will we need).
    • Seeing who's on each team, the size of each team, and the graduation dates of each team members, to know, for example: should we be recruiting someone? is there an extra person we could move to another team? who will we need to replace soon? is recruiting for that underway?
    • Seeing the people we already know who could fill a role (even before they've applied), i.e. any prospects. This'll be modeled in the API soon.

BD Tasks

  • Manage Job Board [3rd party software for this?? include for budget?]
  • Manage Sponsorships (including seeing how other teams have already interacted with that company)

CRM

  • Log who’s reaching out to which speakers and companies, so we don’t accidentally bug anyone too much, and can reference the prior interactions. Useful for event teams reaching out to venues and speakers, and the bd team reaching out to companies. Associate logged interactions with the company, venue, and speaker records, to answer the question “has someone already bugged this company? does someone already know this speaker?”
    • How? Maybe just BCC some [email protected] email address, and it’ll be recorded? And
    • Or something more transparent which could be possible, e.g. if people were using @techatnyu.org email addresses. But that would require a more expensive Google Apps account.