Django Capstone project PDX Code Guild (Summer 2019)
The creation of this app was inspired by a KPTV news story about a girl scout troop whose trailer full of camping gear was stolen the day before a big trip to Crater Lake. At the eleventh hour, neighbors, friends and family rallied to ensure the troop had the gear they needed to take the trip as scheduled. People loaned or donated tents, sleeping bags, stoves, tarps, lights, etc.
For anything that was on loan only, the scout leader presumably had to keep track of who each item belonged to. Why not make an app that makes it easy for neighbors, friends, family, teams, hobby groups, basically people that know each other IRL (in real life), to share their stuff?
Think of it as a virtual library for more than just books. You might find DVDs (if anyone uses those anymore), games, garden tools, camping gear, sport equipment, beach gear, tools, luggage, ... the list goes on; stuff people have in their garages that's gathering dust most of the time.
This app will include:
- a user registration system
- user profile pages
- a catalog of items that can be checked out from a variety of categories
- an interface for lenders to add, edit, and remove items
- an interface for borrowers to request, checkout/check in items
Visitors will see a list of categories to choose from, like Craigslist.
Note: An upcoming version there will have a search field and corresponding results page.
When a category is clicked, they will go to that Category's listing page.
This page will fetch all the items for that category from the item catalog and display them to the user.
- Name
- Subcategories - for Camping Equipment, the subcategories might be: Tents, Sleeping bags, Stoves, etc.
- Owner (aka the Lender)
- Availability
Owners will be able to: (1) manage checkout requests, (2) see, at a glance, which items are checked out and by whom, (3) change availability of an item, and (4) check in items.
Owners will see:
- Checkout Requests: which item was requested, name of the perspective borrower
- Items that have been checked out: name, due date, current borrower
- A form to Add, Edit, and Delete items
- A list of all items they have in their catalog
Visitors will be able to: (1) browse available items, (2) contact the owner.
Visitors will see:
- All the items that an owner (Lender) has to offer
- Name
- Category & subcategory
- Availability (if item is currently checked out, the expected return date will be shown)
- A form to contact the owner
When users click on the Item Name, they will go to an Item Detail page.
This page will have (1) additional information (not shown on the homepage or profile pages), (2) and a form to request to check out an item.
- Additional information:
- Name
- Description
- Category and subcategory
- Availability
- Condition of the item (Like New, Very Good, Good, Acceptable)
- Replacement cost, if item is lost or damaged
- Owner
- Request form:
- Name - prepopulated from
user.username - Text field - to add any information to the request like when item is needed
- Name - prepopulated from
Owners will also see a Checkout History for that item.
Django built-in feature
id Automatic PK field
username CharField
email CharField
id Automatic PK field
name CharField
name: Available, Unavailable, Hidden, Lost
id Automatic PK field
name CharField
name: Pending, CheckedOut, Returned
id Automatic PK field
name CharField
- Books (Technical, Fiction, Nonfiction, Kids, Cooking, etc.)
- Games (Board Games, Handhelds, Video Game DVDs (PS, Xbox), etc.)
- DVDs (Movies, TV Shows, Instructional, Concert Videos, etc.)
- Camping Equipment (Tents, Chairs, Coolers, Sleeping Bags, Tarps, etc,)
- Sports Equipment (Basketballs, Baseballs Bats, Gloves, Water Skis, Snow Gear, etc.)
- Beach Equipment (Quickshade, Straw Mats, Stuff making sand castles, etc.)
- Tools (Hand Tools - Hammers, Screwdrivers, etc; Power Tools - Saws, Drills, Bit Sets, etc.)
- Garden Equipment (Rakes, Hoes, Brooms, Hedge Clippers, Trimmers, Garden Gloves, Trowels, etc.)
- Luggage (Rolling Suitcases, Carryons, Hanging Bags, etc.)
- Event Equipment (Tables, Chairs, Umbrellas, etc.)
- Cooking Equipment (Pots and Pans, Plates, Bowls, Silverware, etc.)
- Stuff for Parents (Stroller, Play Pens, etc.)
id Automatic PK field
name CharField
- Like New
- Very Good
- Good
- Acceptable
id Automatic PK field
name CharField
slug SlugField
description TextField
image_url TextField
type (category) ForeignKey(UserItemCategories)
condition CharField
replacement_cost CharField
owner ForeignKey(User)
item_status ForeignKey(UserItemStatus)
id Automatic PK field
user_item ForeignKey(User_Item)
item_status ForeignKey(UserItemStatus)
reason CharField
request_date DateTimeField
checkout_date (nullable) DateTimeField
checkin_date (nullable) DateTimeField
borrower ForeignKey(User)
due_date DateTimeField
| Section | Duration | Done? |
|---|---|---|
| Aug 5 - 27 | ||
| Registration & Login | ~2 days | Yes |
| User Item Management | ~3 days | Yes |
| User Profile | ~3 days | Yes |
| Create Borrow Request | ~2 days | Yes |
| Approve/Deny, Check In Item | ~2 days | Yes |
| Improved Styling | ~2 days | |
| Post Graduation | ||
| Location-based filtering & Groups | ~4 days | |
| Rating & Reviews | ~7 days | |