Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
A website simplifying the holiday booking process for a company
Ruby JavaScript
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
app
config
db
doc
lib/tasks
public
resources
script
spec
stories
test
tmp
vendor
.braids
.gitignore
README
Rakefile

README

= Holidays

This is a simple website to simplify the process of booking holidays in a
company. Although it has a signup form, the website is really designed to
interact with an existing database containing user (employee) logins. I'm
guessing that it wouldn't take too much effort to change it to get it to work
that way. One thing I'm not sure about is the roles, as companies might not
track roles in their employee database.

== Departments

Each user should belong to a department and the departments should have at least
one head. This isn't actually enforced anywhere in the website as it's just
assumed that people would set it up this way (again, using an existing
database).

Currently each department head has control over the holidays for their
department. In most companies you would have the personnel department have
control over all of the holidays in the company, or at least majority control.
This could be done by having an extra flag on the holiday model that the
department heads would set when confirming a holiday (so that they still have
some control over who goes on holiday in their department), which then lets
people in the personnel department to see the holidays and then they can do the
actual confirming or rejecting. This is handy for when companies have a policy
that 75% of the workforce has to be at work each day, for example, or when
certain employees are only allowed a set number of days off per year. None of
this is even prepared for in the current code, but some of that functionality
will be added in the future.

== Holidays

As this is a website that would be used internally in a company there is more
control over which browsers are used to access it (ie. the tech department
pre-installs the company-used browser on all of the computers and doesn't allow
other browsers to be installed and used). For this reason it is assumed that
JavaScript will be enabled, so the holiday adding interface relies on a lot of
JavaScript to make the process more easier. There currently isn't any support
for plain html pages as I was making it with the assumption of JavaScript being
available. Plain html pages would be handy for accessing the website through a
handheld device (like a phone), but most likely the website would only be
accessible from the desktop computers, so that's a moot point.

== The Future

There is a lot that can still be added. The department control over holidays
can be made better. Having a central department to control holidays can also be
added, either with department heads or without them. Email notifications of
newly added holidays could be sent to the department heads to let them know that
they need to take a look at them. Email notifications of confirmations and
rejections can also be sent back to the employee submitting the holiday request.
Email notifications haven't been added yet as this is currently only intended
as a demonstration website, not a fully fledged working website.

== First Run

Before using the website for the first time you need to do a little preparation.
After you've migrated (or loaded with db:schema:load) you need to run the setup
rake task. This is as simple as doing:

rake db:setup

It'll ask you for an admin username and password, then it'll ask you for
individual user usernames and passwords. Once you have entered some users you
will be able to use the website.

Next you'll need to login using the admin user that you just created. You'll be
taken to the admin interface where you can add/edit/delete users, as well as
departments. There are currently no departments, so you will need to add some.
Just click the departments link in the menu bar to do that.

Once you have added some departments you will need to put users in them. You do
this by clicking the users link in the menu bar then clicking edit next to each
user. You can pick the department from there, then save. It's a little winded at
the moment, but it will be made a bit better in the future.

Once you have added departments and assigned users to them you are set to use
the website for real. Have fun!
Something went wrong with that request. Please try again.