When the emergance of the Coronavirus sent many countries all over the world into a state of lockdown, some companies struggled to adapt when their employess had to begin working from home. Those that were able to were faced with new challenges that needed quick solutions, such as having a way for their employees to capture the amount of work they put into their different tasks, and then being able to monitor this progress day-to-day.
What it does:
The Monday platform already provides a rich toolset that allows for remote collaboration and time flexibility. Our idea is to tie the items on an organisation's Monday board into our app, a timesheet capture system, where users could capture their time worked on each item per day, as well as log absent hours where applicable. This provides the organisation a view into the day-to-day activities of the board's users and is a great way to track the amount of work getting done.
How we built it:
TaskTime was built with ReactJS and uses the Apollo-Client library to wrap all GraphQL API calls into an easy, app-wide state management system. The API results are cached after each call and the cache is updated when an event ocurrs onthe main board.
Challenges we ran into:
Understanding Apollo's state manager and making use of the global reactive variables proved challenging. Updating reactive variables from different parts of the app became messy as it was sometimes hard to keep track of the flow of events between pages. This was eventually cleaned up by limiting the application of the reactive variables and breaking down the larger components into small, single use components. The only other main challenge was to decide on the structure of keys when saving data to the Monday SDK's storage API. We had to plan out how to store the data efficiently so that we weren't fetching unecessary chunks of data when only parts of it were required.
Accomplishments that we're proud of:
1. Creating a clean, satisfying user interface. 2. Handling loading states efficiently between API calls, data fecthing and component rendering. 3. Building an extemely useful tool that can be used by most teams across any industry.
What we learned:
Extensive planning can sometimes be a great thing. It took us a few weeks of coding and meetings before we even rendered the first button on the screen. We learned how to identify our core and supporting functions that were required to achieve the app's goal before coding together a PoC. Design was always an iterative approach, but understanding the functions first contributed to the overall design and program flow.
What's next for TaskTime?
We have so many ideas for features that we wanted to include and new features we'd like to try out. Some of these features include: -- The ability to create custom items on the timesheet. -- More variations of reports. -- The ability to save and export a timesheet to formats like PDF, Excel, CSV.