As of writing this, Costco still uses paper and pen for their cake orders and as an employee I've seen first hand how many issues this causes. I made this app as a way to modernize their system and provide an improvement to the member experience and help alleviate the amount of issues that arise from paper and pen systems. It prevents necessary forms from being left blank, it eliminates issues of employees being unable to read handwriting, it eliminates the possibility of misplacing or misfiling orders, and it saves having to keep copies of ordering forms stocked. The member experience is improved by giving them an easy to follow process. Being able to see pictures of the cakes matched up with the names as they make the selection prevents accidentally selecting the wrong design, and requiring all important fields guarantees the decorators have all the information they need to be able to complete the order by the deadline. The process is much in need of modernization and this app sets out to do so.
This website gives Costco members the ability to place a special cake order with Costco. It features three sides, the Member Side, the Employee Side, and the Admin Side. Check
The Member Side gives members the all the forms needed to complete their order and allows them the ability to track their orders. They can create their own orders, update them within a certain time frame before the cakes scheduled completion, or cancel their order entirely if desired.
The Employee Side gives employees the ability to see an organized list of To Be Completed Orders(TBCO). They can expand the orders into dynamic pages to show all details for that order. When the employee finishes the cake, they can check it off as done to move it out of the TBCO section. When they see fit, they can check all the completed orders against the cakes that haven't been picked up yet and permanently delete them from the database.
The Admin Side gives complete CRUD functionality over all orders and users, including Employee and Member accounts.
The websites testing will be at least 90% covered. Testing is done with Rspec and Capybara. Coverage is found with the SimplyCov gem.
Authentication and Authorization is handled with the Devise gem and custom helper methods.
File uploads are handled with the Paperclip gem.
The app will primarily use Ruby on Rails and the SQL database. AJAX added to increase the UX. The app was made with the culmination of knowledge and skills I picked up during my time with Epicodus' Ruby/JavaScript/Rails course.
Future plans include:
- Hosting the site live
- Updating the style of the page
- As a member, I'd like to create an account
- As a member, I'd like to be able to view all information regarding cakes
- As a member, I'd like CRUD functionality over orders I've made
- As a member, I'd like to view all orders I've placed and their current status
- As an employee, I'd like to see a list of all orders made organized by deadline
- As an employee, I'd like to expand orders and see their specific details
- As an employee, I'd like to mark an order as completed to move it out of the list of to be completed orders
- As an employee, I'd like to delete orders from the database when the cake has already been picked up
- As an admin, I'd like CRUD functionality over orders in the store
- As an admin, I'd like to be able to see all orders and change their status between processing and completed
- As an admin, I'd like CRUD functionality over employees and members accounts
- Landing page with information regarding app and link to start orders
- Build order pages with forms to build orders
- Order completed page displaying the order in it's entirety before confirming
- Order confirmation page
- View orders to see all the orders you've placed and their completion status
- Orders page that lists all orders to be completed, organized by scheduled dates
- Order details page to show all necessary information regarding the orders
- Completed orders page to show any orders that have already been marked as completed
- CRUD pages to handle CRUD functionality over orders and user accounts (employee and member)
Stretch Goals:
- About page for information regarding the company
- Contact page to reach out to me
- SASS
- AJAX
Stretch Goals:
- React or Angular 4 for front end
- Refactor code.
- Delete unused code.
- Make README awesome.
You will need the following things properly installed on your computer.
As of writing this README, these instructions work on MacOS.
- Run
$ git clone <this-repository-url>
- Then
$ cd costco-cakes
- Once in the 'costco-cakes' folder, run
bundle install
to install gems,$ rails db:setup
to setup up the database, and$ rails s
to run the server. Then visit http://localhost:3000/ to view the app.
This website has three user accounts for testing purposes if installation instructions are followed properly.
Admin:
email | admin@test.com
password | 123asd
Employee
email | employee@test.com
password | 123asd
Member
email | member@test.com
password | 123asd
- Ruby ~> 2.4.1
- Rails ~> 5.1
- SQL
- HTML
- CSS/SASS
- Bootstrap https://getbootstrap.com/
- Jquery https://jquery.com/
- Node
- Bower
- FactoryGirl
- Paperclip
- Devise
- AJAX
Steven Galvin
MIT License
Copyright (c) Steven Galvin, 2017
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.