Teamname: #drunk-civet
Authors: @lumodon, @HJBowers
Code Construction: [40 points]
- Concise commenting
- Intermediate variables
- No long functions
- Well-factored self-documenting code
- Eslint is setup Code Readability: [40 points]
- Good names for files, variables classes, methods etc.
- Consistent white space usage
- Comments explaining unusual code, bug fixes, code assumptions functions
- Clean, precise commit messages Code Organization: [20 points]
- Methods are grouped logically or by accessibility. Basic separation of code into logical folders
- Code is grouped into regions and well commented with references to other source files. Each physical file has a unique purpose
- First step of approaching a new codebase is to read the README.
- Next, get the code up and running. Checkout the README and look for instructions to get a local development copy of the repo up and running and play around with it.
- Next, read the browse in the
t
directory. Reading test descriptions (and file names) is a great way to learn what the app can do. - Next, run all the tests locally, to make sure they are passing. (for this repo, there will be several failing tests) You'll need phantomjs installed:
npm install phantomjs
then runnpm test
- Next, checkout the database design. Load it up in sql designer and familiarize yourself with the schema.
- Finally, look around the other folders and get a sense of how the code is organized, and what the technology stack is: database? front end? test suite? asset management? css framework?
This epics adds a new role: approver. Approvers can approve and reject requests, but don't have all of the admin access that an admin has.
- As an Admin when I add a new user, I can choose to make them an approver
- As an Admin if I try to make someone an approver AND an admin I get an error: "User can only be approver or admin, not both"
- As an approver I can see a menu item in the top navbar next to calendar called "Requests" which links to "/requests"
- As an admin I can see the requests link as well
- As an employee I cannot see the requests link
- As an approver or admin, I can see a notification icon next to the request link that shows the number of pending requests
- As an approver, I can approve and reject requests
- As an approver, I do not have access to other admin functions (general, department, LDAP configuration, emails audit)
Web application for managing employees absence.
Multiple views of staff absence
Calendar view, Team view, or Just plain list.
Tune application to fit into your company policy
Add custom absence types: Sickness, Maternity, Working from home, Birthday etc. Define if each uses vacation allowance.
Optionally limit the amount of days employee can take for each Leave type. E.g. no more than 10 days of Sick days per year.
Setup public holidays as well as company specific days off.
Group employees by departments: bring your organisation structure into, set the supervisor for every department.
Third Party Calendar Integration
Broadcast employees whereabout into external calendar providers: MS Outlook, Google Calendar, and iCal.
Create calendar feeds for individual, departments or entire company.
Three Steps Workflow
Employee request time off or revoke existing one.
Supervisor get email notification and decide about upcoming employee absence.
Absence is accounted. Peers are informed via team view or calendar feeds.
Accesss control
There are following types of users: employees, supervisors, and administrators.
Optional LDAP authentification: configure applicationto use your LDAP server for user authentication.
Seamless data migration betweeen different installations
User friendly and simple work-flow for data migration between different TimeOff.Management installations.
Admin user can download the entire company data as a single JSON file.
And then restore the account at different installation by simply uploading the JSON.
Works on mobile phones
The most used customer paths are mobile friendly:
-
employee is able to request new leave from mobile device
-
supervisor is able to record decision from the mobile as well.
Lots of other little things that would make life easier
Manually adjust employees allowance e.g. employee has extra day in lieu.
Upon creation employee receives pro rata vacation allowance, depending on start date.
Users of three types: admins, supervisors, and employees.
Email notification to all involved parties.
Optionally allow employees to see the time off information of entire company regardless the department structure.
Visit http://timeoff.management/
Create company account and use cloud based version.
Install TimeOff.Management application within your infrastructure:
(make sure you have Node.js and SQLite installed)
git clone https://github.com/timeoff-management/application.git timeoff-management
cd timeoff-management
npm install
npm start
Open http://localhost:3000/ in your browser.
We have quite a wide test coverage, to make sure that the main user paths work as expected.
Please run them frequently while developing the project.
npm test
(make sure that application with default settings is up and running)
Any bugfixes or enhancements should have good test coverage to get them into "master" branch.
In case one needs to patch existing instance of TimeOff.Managenent application with new version:
git fetch
git pull origin master
npm run-script db-update
npm start
Please report any issues or feedback to twitter or Email: pavlo at timeoff.management