Project 4: A Full-stack Django App
Overview
With this project you'll be building an exciting full-stack app that uses the Python-based Django Web Framework.
Planning & Presentation Requirements
Trello Board
- A Trello board with:
☐ User Stories, each moving from left to right in the following
three lists in your board:
- Ice Box
- Current/MVP
- Completed
User Stories must follow the following template:
As a <user role>, I want <feature>, because <reason>.
The reason is optional if it's blatantly obvious.
Note: Prioritize your user stories within the Ice Box with your "wish list" stories at the bottom. ☐ Wireframes of the main pages of functionality, e.g. Landing Page, Posts Index Page, Favorite Posts Page, Add Post Page, etc. ☐ An ERD showing the attributes of each entity and the relationships between them. Refer to the Data Modeling lesson for assistance.
Presentations
You will have approximately 5 minutes to present your project following these guidelines:
-
Introduce the Project:
☐ Intro your project by paraphrasing the README.
-
Demonstrate the Project:
☐ Launch the project by clicking the link in the README.
☐ Sign up a new user, then immediately log out.
☐ Log in with your preferred user and demonstrate the features of the app.
☐ Be sure to demo all CRUD data operations.
-
Show/discuss your code:
☐ Show the "main" Django model.
☐ Show your favorite Django template.
☐ Show the code for the main model's view.
-
Share your experience:
☐ What was your biggest challenge?
☐ What are your key learnings/takeaways?
-
Q & A + Feedback
Technical Requirements
Your App Must:
☐ Be a full-stack Django application.
☐ Persist data in PostreSQL.
☐ Authenticate users using Django's built-in authentication.
☐ Implement authorization by restricting access to the Creation, Updating & Deletion of resources.
☐ Be deployed online using Heroku.
The app may optionally:
☐ Consume data from a third-party API.
Suggestions for Success
-
Because your app's functionality revolves around the logged in user, implement authentication and basic navigation first!
-
Remember to keep things small and focus on the MVP – feature creep can doom a project!
-
Read the docs for whatever technologies / frameworks / API’s you use. Definitely
-
Be consistent with your code style.
-
Commit early, commit often. Don’t be afraid to break something because you can always go back in time to a previous version.
Potential Project Ideas
- If you're having a hard-time coming up with an idea, be sure to research potential third-party APIs.
- One of the best questions to ask yourself is, "Why would I want to use this app?"
Obtaining Assistance from an Instructor
-
Although your kind instructors will be available to assist during project time, the amount of assistance you require is expected to be minimal due to the fact that we're preparing you to become self-reliant for your next career.
-
All requests for assistance should be slacked to the class support channel, not individual instructors. This approach will provide the best and quickest response, as well as be helpful to other developers who may be faced with the same issue.
Project Feedback + Evaluation
- Your instructors will be evaluating your project during your demonstration as well as reviewing the code in your repo.
- If your instructor(s) determine that your project does not meet the above requirements (denoted using checkboxes), you will be given 3 calendar days to address the deficiencies identified. However, be aware that there is only a single opportunity to resubmit a project during the course. For example, if you already resubmitted Project 2, you will not be permitted to resubmit this project.
- Immediately after your presentation, your instructor and/or outcomes may provide you with feedback that will benefit your project and perhaps the projects of other students as well.
- If there is a specific section of code that you would like an instructor to provide additional feedback, please ask!