A platform that allows teachers to clock-in/clock-out of their daycare center.
- Ruby version 2.3.4
- Rails 5.1
- Bundler version 1.17.3
- Language
- Ruby
- Framework used
- Ruby on Rails
- Development and testing
- RSpec Rails
- Rubocop
-
clone this respository
git clone git@github.com:tomily1/ClockIt.git
. -
Open the cloned directory with
cd ClockIt
. -
Run
bundle install
to install dependencies -
copy the database example in
config/database.yml.example
withcp -v config/database.yml.example config/database.yml
. -
create the database and run migration using
rails db:create && rails db:migrate
-
run server with
rails server
This app is available and hosted on Heroku and it is available here.
After reading the requirements, I created a very simple database design shown below and it has the follow relationships:
- User has many Clocks
- Clock belongs to User
This enabled me to create a very basic Clocking app which can be easily improved. A user has the ability to:
- Login or register on the app
- View the history of clock events
- Delete a clock event
- Edit details of clock events
This application is basic and it shows the basic functionality of a clocking app. However, there are improvements that can be made on the app:
If given another day to work on this:
-
I will create the admin backend that will help admin supports and application/daycare owner view all the clock in and outs of each teacher in the daycare (User Management)
-
Write more specs to increase the code coverage as well as eliminate breaking changes that might occur by introducing new features.
-
Introduce password login to ensure account security on the app.
If given a month to work on this:
-
I will introduce multitenancy to allow multiple daycares to onboard the application as well manage their teachers respectively using different subdomains and application context.
-
Improve sessions and logins by ensuring session expires, allow password reset and email confirmations.
-
Improve User management by daycare owners to allow more control over edit and delete actions for teachers clock ins and outs. i.e daycare owners can disable edit and delete actions and defined clocks as well as set automatic expiry dates to these actions. For example It won't make sense for a teacher to delete or edit a month old clock in or out, so it can be disabled.