Superhero News Requirements
Superhero News
This application is used to teach how to build a web application. There are around 50 specific skills that are required to build a typical app. This document lists the requirements that demonstrate the skills. By meeting the requirements you are showing that you have mastered the required skills.
Skills By Level
Level 1 - Setup development tools
- Python and Django are installed on a computer
- Github repo hold all project code
Level 2 - Build a simple app
- Use startproject, and startapp
- Create settings.py file
- Define a simple page view
Level 3 - Application Hosting
- Register for account at Python Anywhere
- Setup application server at Python Anywhere
- Deploy code using "git pull"
Level 4 - TemplateView
- Define custom URLs, Views, and Templates
- Show multiple superheroes
- Include an image from "static" directory
Level 5 - Data Models
- Create a database to store "hero" records
- Use Admin views to create records
- Deploy the admin static media on Python Anywhere
Level 6 - Data Model Views
- Create views that inherit from ListView, DetailView, CreateView, UpdateView, DeleteView
- Custom views for List, Detail, Add, Edit, Delete
- Simple view inheritance using "theme.html"
Level 7 - User Authentication
- Create stand-alone User Accounts code
- Integrate User Accounts in Superhero App
- Require login to modify data
Level 8 - Bootstrap Styling
- Implement a single style using bootstrap
Level 9 - Custom Views
- Integrate views for user flow
Level 10 - Relational Data
- Add Investigator objects with link to User Auth
- Add Article data type with link to Investigator and Hero
- Format articles as markdown
Level 11 - Social Network
- Link Articles with Investigator objects
- Add Notes to Articles
- Display the Notes to the Investigator who authored the Articles
Level 12 - Social Network
Level 13 - Social Network
Level 14 - Social Network
Technical Requirements
Development Tools
Github
Workflow
- Install Brackets software
- Git plugin for Brackets
- Emmet plugin for Brackets
- Beautify plugin for Brackets
- Edit, Browse, Deploy
Web Hosting
- Register an account at Python Anywhere
- Setup a Web App at Python Anywhere
- Git clone at Python Anywhere
- Deploy using git pull
Django Apps
- Django App Structure
- startapp script
- Defining URL routes
Django Views
- TemplateView
- RedirectView
- FormView
- Django Admin Views
Templates
- Variable
- If and For
- View Inheritance
- Blocks
CRUD Views
- ListView
- DetailView
- CreateView
- UpdateView
Django Data
- CRUD with ORM
- Listing object (get, filter)
- Modifying objects(save, create, delete)
- Data migrations
- Import/Export
User Auth
- Register
- Login
- Logout
Page Structure
- Menus
- View Component Templates
- Document View
- Table
- Cards
- Tabs
- Accordion
- Markdown
- DocFileIndex
- DocList
- Composite Views
- Markdown
Bootstrap
- Menus
- Grid layout
- Widgets