FastTrack'D Group Assignment
April/May 2016
Memphis, TN
Assignment to create a quick and dirty facebook clone. Exercises group development and project planning skills. Especially fun for the teachers, who get to be the evil dungeon masters they've always wanted to be.
- CodeSchool: Try Git in the Browser
15 minute interactive course that's great for newcomers to git. Teaches mostly commandline git and some GitHub-specific concepts. - Atlassian: Git Workflows and Tutorials
Learn about and compare different git workflows.
- nvie (Vincent Driessen): A Successful Git Branching Model
This article first laid out the principles of git flow. Long and conceptual. - Atlassian: Gitflow workflow
Another explanation of the principles of git flow. Shorter, and more practical. - Daniel Kummer: git-flow cheatsheet
Great for visual learners. Lays out the concepts of git flow in a graphical and intuitive fashion. - nvie (Vincent Driessen): gitflow on GitHub
Commandline git extensions supporting git flow.
- angular.js: Angular Developer Guide
A guided tour of Angular's major features, aimed at new developers. - angular.js: Angular API Documentation
Full API documentation for Angular. - johnpapa: Angular 1 Styleguide
Thorough, specific, well-reasoned, and widely adopted styleguide for Angular 1 in pre-ES2015 (read: older JavaScript) environments. Angular-team-approved.
- Angular Material
Homepage for the angular-material component library, with lots of demos (with code examples!) and documentation. Be sure to select the version of the library you are including in the project! - Google: Material Design Specification
The ui-design specification (manifesto?) Google uses to design web and mobile applications. Angular Material is a so-called reference implementation of this specification.
- Eclipse
- Atom
- git (VCS)
- Git Kraken (git GUI)
- Java (primary language)
- Maven (build tool & dependency management)
- Wildfly (application server)
- MySQL (persistence store)
- Hibernate (ORM framework)
- Spring Framework (IoC container)
- Spring MVC (for RESTful webservices)
- JavaScript (primary language)
- Angular.js (ui framework)
- angular-ui-router (routing framework)
- angular-material (component library)
- angular-animate (animation)
- angular-aria (accessibility)
- angular-messages (messages / client-side validation)
- Roboto Font Family
- Material Icons
- CAN create a group
- IF the USER is logged in
- IN ORDER TO
- become the new group's owner
- CAN view group pages
- IF the USER is logged in
- IN ORDER TO
- view the group's owner
- view a list of the group's members
- leave a comment on the group's timeline
- join or leave the group
- CAN join a group
- IF the USER is logged in
- AND the USER is not the owner of the group (owners are permanent members)
- AND the USER is not a member of the group
- IN ORDER TO
- be able to leave a comment on the group's timeline
- CAN leave a group
- IF the USER is logged in
- AND the USER is not the owner of the group (owners are permanent members)
- AND the USER is a member of the group
- CAN leave a comment on a group's timeline
- IF the USER is logged in
- AND the USER is a member (OR owner) of the group
- CAN leave a comment on a user's timeline
- IF the USER is logged in
- AND the USER is friends with the target user
- Found on user profiles and group pages
- DISPLAY DATA
- list of Comments left on the Timeline
- reverse-chronological order (newest at the top, oldest at the bottom)
- list of Comments left on the Timeline
- ACTIONS
- Leave a Comment
- Found in the contents of Timelines
- DISPLAY DATA
- comment text
- creation timestamp
- human readable format
- author
- user's full name
- should link to target user's profile
- Found at the top of Timelines
- INPUT DATA
- Comment Text
- required
- at least one character
- Comment Text
- ACTIONS
- Leave a Comment
- DISABLED
- IF INPUT requirements are not met
- OR
- IF Timeline is on a user profile
- AND LOGGED IN USER is not friends with the target user
- OR
- IF Timeline is on a group page
- AND LOGGED IN USER is not the owner or a member of the target group
- DISABLED
- Leave a Comment
- INPUT DATA
- ACTIONS
- Submit
- DISABLED if INPUT requirements are not met
- Submit
- INPUT DATA
- Group Name
- required
- unique
- at least one character
- Group Name
- Timeline (screen fragment)
- ACTIONS
- Join Group
- DISABLED if the LOGGED IN USER is already a member of the Group
- DISABLED if the LOGGED IN USER is the owner of the Group (owners are considered members)
- Leave Group
- DISABLED if the LOGGED IN USER is not a member of the Group
- DISABLED if the LOGGED IN USER is the owner of the Group (owners cannot leave their Groups)
- Join Group
- DISPLAY DATA
- Owner (with link to owner's user profile)
- List of Members (each link to the appropriate user profile
- CAN search for other users and groups (and themselves)
- IF the USER is logged in
- by full or partial name
- IN ORDER TO
- view a list of search results
- select a user's profile from the list of results to view
- select a group page from the list of results to view
- CAN view other user's profiles (and their own)
- IF the USER is logged in
- IN ORDER TO
- view the selected user's profile information
- view the selected user's list of friends
- view the selected user's owned pages
- send the selected user a friend request
- leave a comment on the selected user's timeline
- Found on every screen
- IF logged in
- DISPLAY DATA
- Full Name of LOGGED IN USER
- ACTIONS
- Search Users and Groups
- DISABLED if search INPUT field is empty
- Go to LOGGED IN USER's User Profile
- Create Group
- View Pending Friend Requests
- Logout
- Search Users and Groups
- DISPLAY DATA
- IF logged out
- ACTIONS
- Go to User Login
- Go to User Registration
- ACTIONS
- ACTIONS
- Go to User's Profile
- one for each User-type search result in the DISPLAY DATA
- Go to Group Page
- one for each Group-type search result in the DISPLAY DATA
- Go to User's Profile
- DISPLAY DATA
- List of Users and Groups whose
fullnames match the search criteria
- List of Users and Groups whose
- Timeline (screen fragment)
- DISPLAY DATA
- Full Name (first name and last name)
- Birthday (day and month)
- Age (years)
- Friend List (each with a link to the friend's profile)
- Owned Group List (each with a link to the group page)
- ACTIONS
- Send Friend Request
- DISABLED
- IF the LOGGED IN USER and the TARGET USER already have a pending friend request between each other
- OR the LOGGED IN USER and the TARGET USER are already friends
- DISABLED
- Send Friend Request