Posted on Aug 6th, 2021
⚠️ Before you start writing code
Today should be used for finalizing planning and doing research on data, technology, and tools you might need.
The following checklists will help you know when you are ready to start writing code.
✅ Checklist for the whole team
- Every team member is clear on your MVP, and you know exactly what you are building.
- You have added user stories and tasks (at minimum, for MVP) to your Trello board.
- Your tasks should reflect the decisions you have made about how you will implement things (i.e., they are specific and detailed).
- Make sure your tasks are labeled according to what responsibilities belong to the front end or back end.
- You have created a team organization on GitHub and added every team member.
- You have created your project repo or repos on GitHub.
- Make sure you have a
.gitignore
file! You can get one that is specific to your project at gitignore.io.
- You are clear on the git and GitHub workflow for your team.
- 🚨 Make sure you are using
django-environ
and a .env
file. This will be especially important for secret keys and sensitive info, like AWS credentials. DON’T COMMIT YOUR SECRET KEYS!
- Consider appointing a rotating team lead who can be responsible for running standup, leading at check-in, and looking after the Trello board.
✅ Checklist for the back-end
- Make sure you are using Postgres and not SQLite.
- Models! What models will you need?
- What fields belong on those models? Use the Django Model Field Reference.
- What relationships exist between your models? (one-to-many, many-to-many?)
- Consider using the CRC model to help guide your discussions.
- You should create a diagram for your models to map relationships. This may change as you work, but you should have a good plan to start with.
- What URLs will the front end need?
- What data will the front end request?
- Are you returning HTML? -> What templates does the front end need, and who will make those?
- Are you returning JSON? -> How will you structure your data?
- Deploy early and often. Who will deploy? Make sure more than one person on your team has the ability to do this.
✅ Checklist for the front-end
- Have you mapped out a user flow through your app?
- Wireframes for each interface the user will see
- With backend, can you say what URL corresponds to each page or interface the user sees?
- If using React Router (with a separate front-end application), what urls do you need?
- What data will you need on each page or interface? Where is it coming from?
- What requests will you need to make from the front end?
- Are you making forms? Discuss data with the backend.
- What assets will you need?
- General strategy for css and design so that you can budget time for it.
- Are you using a css library (e.g. Material UI, Bulma, Tachyons)? What is the general look and feel of your app?
- Start to think about UI/UX and design
- Deploy early and often. Who will deploy? Make sure more than one person on your team has the ability to do this.
Reminders
- Standup starts Monday 8/09 @9:30 am or @9:45 am (check your email for a cal invite)
- First check-in Monday 8/09 @your assigned time (check your email for a cal invite)
Standup and check-ins will use this Zoom classroom.
Posted on Aug 4th, 2021
Today’s topics
- Finalizing your product idea
- Defining users & writing user stories
- Turning user stories into tasks
- Creating your Trello board
Create tasks on your Trello board today
Your team’s trello board is ready with columns predefined to start you off. You are welcome to adapt it and create additional columns to support the way your team works.
Slides
🔖 Resources
Example Trello Boards
Posted on Aug 3rd, 2021
Today’s topics
- Refining your product idea
- Thinking about features and beginning to think about implementation
- Creating a product roadmap
- Writing user stories
TODO: Finalize your app idea
What is your app and what does it do?
One representative on behalf of your team should fill out this form by tomorrow to tell us what product you are building. Please make sure the responses represent everyone on your team.
Defining MVP and prioritizing features
Use these slides to guide your team discussions today. We’ll go over them in class, followed by time to work on creating your product roadmap with your team.
🔖 Resources
Posted on Aug 2nd, 2021
The past twelve weeks have prepared you to take on the challenge ahead in these next four weeks. Your goal is to design and build a real-world software product, working collaboratively on a small team using agile development practices and all the tools you’ve already learned – and some you will learn as you go.
At the end of the phase, your team will present your product to an audience of local tech professionals, hiring partners, and the Momentum community.
The experience of working on a team during this phase and the product you build will form the foundation for your job search after graduation. The people skills you’ll use will be just as important as the technical skills!
You will not begin writing code for your project until Thursday of this week.
Today’s topics
- What is agile development?
- Forming final project groups
- Brainstorming product ideas
Slides
🔖 Resources
Idea Generation 💡
Agile Development
Posted on Jul 26th, 2021
Today’s Topics
- Postgres full-text search
- Automatic deploys with Heroku’s GitHub integration
- File upload and Amazon S3
🎯 Project: QuestionBox is due on Thursday
By today you should have working endpoints for:
- login and logout
- registration
- all questions
- all questions for a single user (authenticated user; own questions only)
- all answers for a single user (authenticated user; own answers only)
- create a question (authenticated users only)
- details for a single question
- all answers for a single question
- create an answer for a question (authenticated users only)
Depending on how you’ve constructed your API, you might have separate endpoints for all of the above, or you might have fewer endpoints (for instance, if you nested answers in the question detail endpoint). What matters is that your have endpoints your front-end team can use to access this data.
This week you should work on endpoints for:
- search all questions
- optionally search questions and answers
- delete a question (for user who created the question)
- mark an answer as accepted (only if you are the author of the associated question)
- favorite/”star” a question (authenticated users only)
📖 Read | 📺 Watch | 🎧 Listen
🔖 Resources
@action
decorator in ViewSets
Filtering and search
File uploads
POST with upload using Insomnia
For more information on the values for Content-Type
:
CORS for file upload
Assuming you are using django-cors-headers
, you’ll need to add the following to settings.py
:
from corsheaders.defaults import default_headers
CORS_ALLOW_HEADERS = list(default_headers) + [
'content-disposition',
]