This is a quick app I made to demonstrate my thinking on building a basic app.
Requirements
- take in household, person, and car information
- Strictly maintain the relationship of a 'person' belonging to a 'household' and a 'car' to a person
- allow users to assign cars to their correct owners all within the same data entry workflow
The stack I selected
Server Framework Rails JS Framework Angular UI Framework Bootstrap Database Postgres
Things I would fix for a professional project
- commits are not squashed. I want to give as accurate a picture of my 'process' as possible so all origianl commits are here, even the ones where I realized I messed up.
- There are some validations but not all that are really required - I wanted to demonstrate that I could do this, but it's not in the requirements so I put in a 'bare minimum' on each model
- 'Users' and 'People' are totally seperate concepts, a bit like the 'user' is an insurance agent profiling multiple families. Anyway this seems kinda weird.
okay now here's the stuff that would be on this project for everyone
CarSite demo app
Notable features
- Devise-based signup and authentication
- Real Postgres-level constraints on 'users" - there are tons of Rails-level validations but
20160404031826_add_email_constraint_to_users
adds a constraint to validation that can't be easily circumvented - 'gender' is a string rather than a binary or dropdown - This is intentional and conforms with requests from trans people that forms not force a binary on the respondents
Known issues
- database.yml has raw credentials, something I would not do normally, but I wanted to make Postgres deploy as easy as possible for any reviewers.
- currently validation isn't bubbling back up to the form particularly well. This would probobably be my next features
- no authentication on API endpoints
Requirements
-
Ruby version 2.3.0
-
System dependencies Bower, and presumably npm to get Bower A Bowerfile is included to grab Angular and Bootstrap
-
Configuration If you have any config issues, please let Toby know!
-
Database creation - You'll need PostgreSQL 9.3 installed/running and a user with l/p of "polish" and database creation privileges.
-
Database initialization - standard
bundle exec rake db:create
anddb:migrate