Resume note - This is the first Ruby on Rails application I have created. A live demo can be found at https://bagelpatch.onrender.com/.
https://bagelpatch.onrender.com/login → demo@test.com
: abc123
Bagel Patch uses a number of open-source projects to work properly:
- Twitter Bootstrap - Open-source CSS framework (this makes the website pretty)
- jQuery - A fast, small, and feature-rich JavaScript library
- Ruby on Rails - Web application framework
- Cloud9 - In-browser IDE and server
- Heroku - Made deployment of this application VERY simple
Enable "articles" (section 5 of https://guides.rubyonrails.org/getting_started.html)Add all contents to the menuClick on carousel to be taken to the menuClickable phone / address links in footerMake the navigation bar look less like pukeMake navigation bar work for mobile usersDo not allow guests users to edit / delete / create any articlesFooter link opens in new tabAdministrator control panelAdmin nav bar quick-controlsLog out nav bar item for USERS onlyVisiting /login while logged in allows you to log in again. Remove that- Make a portal
and tie this into "deals" so logged-in users can edit / delete deals, testimonials, pictures, etc - Do not allow guests to view /
edit / delete /create any users (/users) - Add picture gallery section
Add contact us section with a space for a user to leave a testimonial that can be featured (and a chance to win a dozen bagels or something)- Instead, encourage a review on our Google page for a free entry to win a dozen bagels.
- Sign up with your email for exclusive offers? Point system with accounts maybe?
- Leave website feedback in bottom right corner - Add CAPTCHA for this
- Login CAPTCHA after 1 failed attempt
Add Google maps iframe of storeMake login email non-case sensitive- Solution:
sessions_controller.rb
, create method: add .downcase before email parameter is sent to database
- Solution:
Add content to Contact section- Add 404 pages before publishing
Consider adding HTTPS- Solution: Porkbun --> Cloudflare --> Heroku
- Brute force password protection (CAPTCHA would fix this)
- Change password minimum from 6 --> 8
- https://guides.rubyonrails.org/security.html
- app/controllers/application_controller.rb: Return 404 instead of 302 and do the same for /admin
Fix navigation collapse (mobile view) not working- Catering
- Fix favicon to be creative commons licensed
- Individual bagel pictures
- Individual cream cheese pictures
- Omelette tab
- Search Engine Optimization (SEO)
- title tags
- meta tags
- Admins can adjust admin roles for ALL users
- Users / guests cannot adjust admin roles
- Users can change their password and edit their account, but nobody else's
- Guests (non-logged in users) can see a list of the users
- Admin panel is only for admins
Make guests unable to see the user list (or at least email addresses)- Make guests unaware that /admin even exists. Throw a 404
- Addressed bootstrap issue @30553 - Bootstrap 4.4.1 collapse doesn't work with jQuery 3.5.0.
- Solution: downgrade jQuery to 3.4.1 in
./package.json
- Problem with this: jQuery 3.4.1 has a security vulnerability (CVE-2020-11022)
- Solution: downgrade jQuery to 3.4.1 in
- Deploying to Heroku is sometimes a breeze, but when it's not:
- issues with
node-gyp
? addheroku/nodejs
buildpack (make sure it is placed ABOVEheroku/ruby
buildpack) and set thenode
version inpackage.json
to match your local machine (assuming your local machine is working as expected)
- issues with