- Improve skipper float plan experience
- Make float plan checklist checkboxes complete checkout
- Move logged_in_user and admin_user functions to a helper? (they are duplicated now)
- Email new users login token account activation tutorial might be helpful
- Better typeahead for mobile (adding crew) (chosen doesn't work at all)
- Create a better fleet view like the original design
- Create a better float plan view like the original design
- "Remember me" from more than one browser
- Allow users to edit their own profiles
- Friendly forwarding
- Better guest handling
- Improve float plan index page (don't always show inactive), there are some skipped test for this
- Add last_activity_date to users
- Add the checkin form fields to the plan edit form.
- Separate the edit form into partials for checkout and checkin.
- Add front-end logic to present only the checkout partial for new plans.
- Don't allow skippers to delete their float plans after they are complete
- Fill in more float plan related tests
- Add a guest textbox to float plans, this is temporary.
Time to figure out how to separate checkouts and checkins. Float plans happen in two parts: Checkout and Checkin. The float plan should be editable to skippers until they complete the checkin (so they can add/remove crew etc.). When creating a new plan, we should only show the form fields needed for checkout. Once that is submitted, the edit form should show the first part of the form as read-only, and the second part as editable, with buttons to complete the check-in. The first part of the should be made editable behind an edit button or something.
- Clean up the show form, refactor into partials for the first and last part of the plan form.
There are two many-to-many associations between users and plans. One for the skipper, and one for the crew. The plan has a skipper, and a crew collection. One the user side, plans refers to float plans one has created while trips refer to times that one has been crew. Originally, I had called both of those associations ":plans" in the user model, but that doesn't work very well. Yesterday, I changed the crew association to ":trips". I wanted to rename the join table and clean up any other mess left behind by the original, broken implementation--before I started really using the trips collection.
As I'm writing this, I'm thinking that I could consolodate into one plans or trips collection and have a skipper flag on the join table. Having a separate skipper_id foreign key makes it a little easier when rendering, I think. So, I'll leave it the way it is for now, but making the above naming changes allows for putting the skipper identifier in the crew/trip join table.
- Rename crew_plans table to crew_trips. Change foreign key names to match primary keys. Remove extra foreign key specs in models.
- Fill in skipped tests
- Test: Ensure that admins can see the edit link on the plan show page.
- Test: Ensure some actions are restricted to skippers and admins on plans controller.
- Test: Ensure that crew can be edited on a plan
- Add messages to skipped tests.
- Float plan tests
- Test to make sure skippers can only edit and destroy their own plans.
- Tests for boat model.
- Add test cases for plans (they are skipped for now)
- Add associations for skippers
- Add skipper association between plans and users.
- Add skipper select to new/edit form, show on index and show.
- Restrict skipper selection to skippers, order by last name
- Remove skipper selection for non-admin users
- Add skipper ID as hidden field when there is no skipper select
- Style skipper field as readonly for skippers
- Allow skippers to edit their float plans (and only their float plans)
- Add associtations for crew/guests
- Make date/time fields more tolorable on the float plan form
- Separated date and times, added formats and default values.
- Move date and time formatting to a helper functions
- Make sure date/time formatting helpers don't fail when giving nil
- Add associtations for boats
- Add boat association to plans
- Show boat on plan forms
- Show only boat number on plan list, order boat dropdown by number.
- Float Plans
- Put an image of the original Float Plan mockup in the design folder
- Add basic show, edit and update plans
- Remove plans fixture as it was causing massive errors (due to column name change)
- Remove static float plan page, hook up real float plan page
- Add new plan button to index page
- Float Plans!
- Generate plan model and plans controller
- Add routes
- Add new view, as well as new and create actions. Change name of tide column to current.
- Add some helper text to the new float plan form
- Add basic index page
- Hide last column on index pages on medium and smaller
- Add cancel buttons to edit pages
- Restrict static pages to users
- Link to edit pager directly from boats index, don't show links to non-admins
- Add a logged in version of the home page.
- Fleet Pages
- Generate boats controller
- Generate boat model
- Add new boat view
- Refactor shared errors partial to accept objects
- Add validations and tests to the boat model
- Add integration tests for boat save/show
- Refactor new boat form to partial
- Add edit function and tests
- Add index page and test
- Swap out boat index page for static fleet page
- Restrict boat view to logged in users, add destroy method and tests
- Add new boat button to index page
- Cast number as int to properly order boats index
- Add unique index to boat number
- Refactor users list
- Add user destroy function
- Hide edit/delete buttons from non-admins
- Continue with auth
- Add logged in user authorization on edits
- Hide crew listing from non-admins
- Restrict user create, edit, update to admins
- Wire up crew view
- Add users index page, remove static crew page, redirect navigation, test
- Add table to crew page
- Add Faker gem, seed database
- Add pagination to crew page
- Add new/edit/delete user buttons
- Order user list by last name
- Fix two subtle bugs in remember functions
- Add remember checkbox
- Finish login and remember me functions
- Started working on auth, but went down a rathole because I didn't do the advanced login stuff, like an idiot. So I got (almost) nothing done.
- Advanced Login for cookies
- Add remember digest and remember function to user.
- Add remember function, and NEVER FORGET!!!
- Add forget functions.
- User setup (a la railstutorial)
- Add new user form
- Save new users to DB
- Change routes to remove "static pages" URLS
- Login
- Add sessions controller
- Add login page
- Add session helpers for login
- Add logout function
- Professional grade deployment tutorial
- SSL
- Webserver
- DB
- Update users
- Add users edit form
- Add user edit function and tests
- User setup (a la railstutorial)
- Add secure password function
- Add and style debug info on pages in the dev environment
- Add admin, skipper, and mobile to users
- User setup (a la railstutorial)
- Add user basic model, validations & tests
- Test coverage for static pages
- Add page titles
- Wireframe a float plan entry screen (mobile first)
- Add app_name helper
- Custom guard file (from railstutorial)
- "Wireframe" the app basics as static pages:
- Float plans
- Fleet
- Crew
- Set up Bootstrap
- Add
gem 'bootstrap', '4.3.1'
to gemfile,bundle install
- Followed directions from the README to import bootstrap and at jquery to gemfile
- Add
- Make app name dynamic (in nav)
- Make a (slightly) better home page. Well, one with more junk on it.
- Placeholders for basic IA
- Unable to connect to Cloud9 Environment today after many attempts :( Let's just do this again...
- Cloned repository with HTTPS this time
printf "install: --no-rdoc --no-ri\nupdate: --no-rdoc --no-ri\n" >> ~/.gemrc
gem install rails
(installed latest, 5.2.3)bundle install --without production
source <(curl -sL https://cdn.learnenough.com/heroku_install)
had to do this twiceheroku login -i
- Added heroku remote
git remote add heroku https://git.heroku.com/float-plan-app.git
- Deployed to heroku, nice.
- Decided to use SSH for github
- To test, shut down instance, browser, logged in again. It's working.
- Initialize git
- Created a SSH Key and added it to github
- Set up new IDE on Cloud9
- Create new Rails app (using the the Rails Tutorial as a guide)
printf "install: --no-rdoc --no-ri\nupdate: --no-rdoc --no-ri\n" >> ~/.gemrc
gem install rails
(installed latest, 5.2.3)- Moved sqlite to development/test group in gemfile
- Added a production group in gemfile, included postgres gem
- Updated gemfile w/o installing pg locally:
bundle install --without production
- Installed heroku:
source <(curl -sL https://cdn.learnenough.com/heroku_install)
- Heroku login from command line:
heroku login -i
- Test deployment with hello world
- Created a static pages controller
- Added minitest reporters to gem file