Application White Board Planning Session
In this video I walk through the planning stages for the application, this is a 'white board' type session where I plan out the models that I'll use, the data flow, and user stories. I also walk through how the database tables will relate to each other.
Guide Tasks
  • Read Tutorial
  • Watch Guide Video
Video locked
This video is viewable to users with a Bottega Bootcamp license

Since the focus of this course is to create a real-time application, let's begin the process by identifying the requirements. In this video, I'm going to briefly talk about the high-level notes I took during my client meeting, and this is to give you an idea of how you should approach any project.

The high level requirement is that the company needs information if salaried employees did or did not get overtime each week. To achieve this objective, we're going to create an application that allows employees to enter their overtime details at the end of every week, and managers can approve the same.

To start with, I can perceive three different models, namely,
- Post with the attributes: date and rationale.
- User which we'll use Devise.
- AdminUser that will inherit from the User class. For this feature, the admin user and user models will use a concept called Single Table Inheritance (STI).

The features of this application should include:

  • Approval workflow - This means when a post is created, one of the Admin users should be able to approve it.
  • SMS Message - This is to remind users that they have to post their overtime details. Since they are not technical users, we'll have to send them a link to the application and make it as easy as possible.
  • Admin dashboard - In the admin dashboard, I'm going to use a Ruby gem called Administrate.
  • Email summary - Our application should email the summary of posts to the manager for his or her approval. Here, managers mean admin users.
  • Need documentation if no overtime was requested - If an employee did not log overtime, that needs to be documented as well. At the meeting, this requirement was specified to meet some labor laws.

Libraries

Some of the libraries that I'll be using for this application are:
- Devise
- Adminstrate
- Bootstrap -
- Twllio - for SMS messaging and to manage our secure credentials
- Dotenv - for protecting credentials from outside access.
- RSpec - for testing
- Capybara - for integration testing

That's all I can think of for now, and we can add more as we begin coding.

large