Our inspiration was to work on something that would be fun and challenging for us to do in order to grow as people and improve our knowledge of coding.

What it does

This program gets data from a .xlsx file, adds it to a database, and uses that database to get the data much easier and assigns each worker a work schedule of tasks that they have to do based on their qualifications. Finally, it notifies the workers of their assignments through text each time a new work record gets added to the database.

How we built it

We built it using Java and its libraries such as apache and we added those libraries through the use of maven, we also collected the data in a database file and used it to decide what jobs should be assigned to which workers.

Challenges we ran into

One of the very first challenges we ran into was the conversion of a .xslx in java to a readable file, which we solved by installing apache.poi through maven and parsing the data row by row. Another challenge we ran into was making sure that all the jobs were assigned, the way we used the algorithm was that each person in the first pass through would get an initial amount of jobs and after that, if there were jobs left over, the people that are certified in that specific field would be assigned extra jobs.

Accomplishments that we're proud of

Assigning jobs correctly to the people that have the certifications and the correct times assigned to the shifts. I'm also proud of being able to use an API to subvert expectations by notifying the workers through texts thereby only requiring a backend, as a frontend would make things more inefficient comparatively.

What we learned

We learned how to parse data from .xlsx file to a .csv and then finally to a database, we also learned how to use maven to implement apache.poi without having to maintain it ourselves, we also learned how to use MongoDB in order to store crucial details in order to decide who to give the jobs to.

What's next for WorkOrderAssigner

I think the next step would be to implement a frontend for ease of use and visibility in case texts get buried for some workers. I think that also factoring distance into the job assignment would make it more viable in a huge dataset.

Share this project: