bethgrace5 / sequoia-grove Goto Github PK
View Code? Open in Web Editor NEWAngular JS / Java Spring Web Application to Assist Employee Scheduling
Home Page: http://bethgrace5.github.io/sequoia-grove/
Angular JS / Java Spring Web Application to Assist Employee Scheduling
Home Page: http://bethgrace5.github.io/sequoia-grove/
Controller could construct it by using the date range to find all:
Save schedule to localstorage, and send to database when published?
Probably best to treat a schedule like a dataset from datagatherer, save it to localstorage, but save separate components to database separately. The controller can build the schedule after finding all the necessary pieces.
Past schedules are not editable, they should be saved as PDF-whkhtmltopdf or as an image - The PDFs should be downloaded? I don't think they should/can be stored to the database.
All of the date inputs are currently plain text inputs - a library needs to be found for angular date picker, installed with bower, and implemented to return the format needed to send with requests.
A manager could be working on a schedule, and the employees could pull that information as they save their progress - I need to add a flag probably to is_scheduled_for
to say that that day isn't ready yet.
Mobile friendly implementation of application needs to be defined and implemented.
Phase I report needs to be completed. The first half is mostly done.
The Schedules need to be "published" so that employees can only see schedules when they're ready to view. Right now, any changes made are immediately reflected in the schedule view.
The app is bundled and pushed to the server - it looks like Grunt can do some or most of this. I can probably test it on my sleipnir account.
The application only supports one store, it needs to have a table for store, and employees and shifts and other things need to be associated with a store. They should be encapsulated so that they don't edit or see another store's information.
There are several directives that need to be set up, and need to reference their respective existing template.
New Shift table has a date start and end for each shift - this needs to be checked in the date range when pulling the schedules from the database, so the schedule being viewed is specific to that time frame.
use different scope variables for view/edit schedule, so weeks can be independently viewed
Double check classification of back shifts, and get current schedule with shift titles.
Mozilla Persona Was suggested for authentication.
Add the current year in schedule-header.html, maybe put it in grey lettering in the right hand corner, or somewhere where it's kindof inconspicuous.
Employee Id is not being returned with the main get schedule function - it is needed for checking to highlight the logged in employee. Right now, the "highlight me" button simply matches the first name strings - which isn't going to work correctly with two employees that have the same exact name.
Current views that should be available to only logged in users, and ones that should only be available to logged in users that are 'manager' level are hidden via ng-hide()
. Any user can modify the value in the page source, let alone, just type app/#/restrictedRoute
in the browser's navigation, and view the page as they have the knowledge to do so.
solution: url route authorization - front end
http://jonsamwell.com/url-route-authorization-and-security-in-angular/
This is just a small security point, there should be other security measures implemented later.
I don't think that requests that were already approved or denied should be able to change status once they've been answered.
The panel with repeating rows and columns wasn't working for previewing print - I set everything as .hidden-print
. There needs to be a view with simple columns and rows for printing the schedule.
It should clear the front end, but not save until save is clicked.
There are several reasons an employee cannot be scheduled for a specific shift - when one is violated, it needs to be made clear to the user what the error is. Right now, there is an Error and a Warning class that are being used. The following items need to be categorized into warning or error, and a nice way of showing the warning or error to the user needs to be created. They also all need to be checked while ther user manually types the schedule - eventually they will also be criteria for an auto generating schedule.
There are days that the store is closed for a half or full day. There exists a table in the database for this, but it is not connected to the front end yet. The managers need to be able to input holidays (name of holiday, date, full or half day). The schedule should block out shifts that occur during a holiday. The table may need to have a column for the time that the half day ends, so it will know which shifts to block out. Different stores may have different ending times, so this will need to be added to the database.
directive templates that need to be built
After schedule table exists:
When saving, if a scheduled shift was changed to a blank name, it needs to be added to delete list, then deleteShifts should be called.
Maybe change it to 0, 1, or 2.
0 = not available
1 = available
2 = preference (manager's preference for building the schedule)
When an employee name is typed into schedule edit, it is finding the employee by name. If two employees have the same name, it will simply select the first one it finds. It needs to check for strings with the first letter of the last name tacked at the end. Simply: If two names are equal, differentiate them with the first initial of last name, and subsequent letters until unique.
I don't know how implementation intensive this will be, but it would be a neat addition. Notify employees by email or text when a new schedule is posted or their request has been responded to. They should have the option of turning off the notifications. This means saving their settings in a table in the database and allowing them to edit whether they get notifications in each instance.
Employees trade shifts - put it on a trade board, and employees accept, or have a specific person to swap with that needs to approve the swap? This needs to be implemented.
JDBC (Java Database Connectivity) is what is used to connect from the back end to the database. There will be separate DAO (Data Access Object) classes that will use JDBC to talk to the database.
Shifts as they are currently ordered by the company aren't in any logical order. So, to display shifts correctly, they need to be manually ordered. This means adding a column for index in the Shift table, and ordering them by that index on the front end. In addition, the shifts are grouped by categories, so some will need gaps after them. So, a column will need to be added to say whether there is a gap shown after a group. The ordering of the shifts, and which ones have gaps after them need to be editable on the front end as well.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.