Planning is critical to the success of your project. Proper planning can help avoid wasting time and ensure your team is successful.
- Create a team name
- Create a slack channel within the LEARN workspace
- Add the instructors
- Create a team email address
- Create a team GitHub Organization
- Add all team members and instructors in the role of "owner"
- Add an image to your organization
- Create a team Trello Board
- Add the instructors
- Create a team Render account
- Be sure to keep track of the username and password as we will need it for deployment
- Decide on Developer Roles
- Elevator pitch - 30 sec summary of the app
- Wireframes - visual representations of all the pages your user will see for your MVP
- DB schema drawn out with column names, data types, and table relationships
- CRUD actions
- User stories for your MVP on Trello
- Swim lanes
- Backlog
- MVP
- Doing
- Code review
- Done
- Add Slack integrations for your repository
/github subscribe <repo-url>
Your team name will not be the same as your app name, so get creative!
The elevator pitch should succinctly explain your project's purpose and functionality.
Wireframes are drawings or basic outlines of what each page of your application will look to the user. Wireframes should be vague enough that style choices are not limited, but provide enough information to create an MVP. During development, if there are any questions or disagreements on the look or basic functionality of your app, wireframes can help sort out those issues. A good wireframe will allow the development team to "walk through" the application page by page.
Figma is a great tool for wireframing!
Setting up your database will be one of the first steps in your project. The database schema should be drawn out with the name of each column and the data type of each column. Relationships between each table should be defined.
A user story describes how a user interacts with an app. Stories take your wireframes and DB schema and turns them into actionable items. Stories are a detailed "to do" list for every part of your application. Stories should be prioritized to keep the team focused on the overall goal of the application as well as keeping the individual developers on task. There should be a clear understanding of when a story is "done".
The capstone project is two weeks long and can be divided into two one-week (5 day) sprints. The first sprint is getting the basic functionality of your application, or your Minimum Viable Product. The second sprint is for adding additional styling and Icebox functionality.
A typical day:
9:00 - Check in with the class
9:15 - Morning standup with the class
- Project: What tasks did you complete yesterday? What task are you working on today?
- Tech: What are your blockers?
9:30 - Check in with your group and discuss the plan for the day
- What story / branch is each person working on?
- What is the goal for the day?
- Assign tasks if needed
9:30 - Pair up and start coding, remember to take breaks regularly and take breaks at the same time
12:00 - Lunch
1:00 - Coding
4:15 - Wrap up with your group
- Reflect on the progress you made throughout the day
- Move any cards completed and discuss the next steps
- Surface any blockers
- Discuss actions items for tomorrow
4:30 - Afternoon standup with the class
- Product: What did your team do today that got your application closer to the requirements of the project?
- Design: What did your team do today that increased your user's experience?
4:45 - Check out with the class
Everyone on the team is a developer on the application. To help divide responsibilities, each member of the team will take ownership over one of the following areas:
Product Manager - Takes ownership on the big-picture vision of the product. Ensures the product meets all requirements.
- Must have strong management skills to provide support to the team and keep team unblocked.
- Manages the conversation around large changes to the app.
- Ensures the README contains appropriate information.
- Gives progress updates to the class at the end of the day.
Project Manager - Takes ownership on internal team communication. Oversees the project management board.
- Must have strong communication with the team about who is working on what.
- Guardian of the Trello board.
- Ensures developers are assigned to the card they are working on.
- Notifies the instructors and/or mentors of PRs when a card is moved to the PR swimlane.
- Keeps Slack active with updates and pins appropriate content.
- Manages external resources.
- Gives status updates to the class at the beginning of the day.
Tech Lead/Anchor - Takes ownership over the code base and version control.
- Must have a strong understanding of the technical needs of the project.
- Guardian of GitHub.
- Merges code when appropriate.
- Surfaces blockers to the class at the beginning of the day.
Design Lead - Takes ownership over the look, color scheme, and branding of the project.
- Must have a strong understanding of the UI/UX needs of the application.
- Guardian of the wireframes.
- Oversees color schemes and implementation of branding.
- Ensures intuitive navigation and user experience.
- Explores styling libraries, responsive design, and accessibility features.
- Gives user status updates to the class at the end of the day.
Everyone on the team is a developer on the project. To help divide responsibilities each member of the team will take ownership over one of the following areas.
Product and Project Manager - Takes ownership on the big-picture vision of the product. Ensures the product meets all requirements. Takes ownership on internal team communication. Oversees the project management board.
- Must have strong management skills to provide support to the team and keep team unblocked.
- Manages the conversation around large changes to the app.
- Ensures the README contains appropriate information.
- Gives progress updates to the class at the end of the day.
- Must have strong communication with the team about who is working on what.
- Guardian of the Trello board.
- Ensures developers are assigned to the card they are working on.
- Notifies the instructors and/or mentors of PRs when a card is moved to the PR swimlane.
- Keeps Slack active with updates and pins appropriate content.
- Manages external resources.
- Gives status updates to the class at the beginning of the day.
Tech Lead/Anchor - Takes ownership over the code base and version control.
- Must have a strong understanding of the technical needs of the project.
- Guardian of GitHub.
- Merges code when appropriate.
- Surfaces blockers to the class at the beginning of the day.
Design Lead - Takes ownership over the look, color scheme, and branding of the project.
- Must have a strong understanding of the UI/UX needs of the application.
- Guardian of the wireframes.
- Oversees color schemes and implementation of branding.
- Ensures intuitive navigation and user experience.
- Explores styling libraries, responsive design, and accessibility features.
- Gives user status updates to the class at the end of the day.