I work as a coop in a company called Treasured Inc. and we have employees from across the globe (Canada, USA, China, India). Thus it is difficult for everyone to plan meetings without our manager having to check in with everyone personally, and there is rarely 100% attendance at meetings. I decided making a global collaborative scheduling program could improve our productivity and efficiency!
What it does
SyncSchedule connects each client's app and allows people to share each others availabilities, regardless of time zones and location differences. People can declare their availability for the week for others to see by selecting which time slots they can attend, and the app compiles everyone's entries into a simple, easy-to-read graph that easily helps determine the most effective time to host a meeting. You can click on a slot in the weekly schedule, and it will display what percentage of the team is available at that time, as well as a list of team members. SyncSchedule was designed for teams not necessarily with coding or backend skills, as everything can be managed with a simple interface.
Additionally, since the backend is hosted on Google Sheets, it is completely accessible by a moderator or admin with little backend experience, and they can easily remove or add new entries on behalf of team members.
How I built it
I built SyncSchedule using Unity and the Google Sheets API. Unity communicates with the sheets, reading and writing data, while the Unity app itself renders the data in a user friendly way. All of this is automatic. The Unity app also allows input from the user with a simple click-and-drag chart. This interface is super efficient and user-friendly, despite the complicated inner workings.
Challenges I ran into
The major challenge of this app was connecting Google Sheets with Unity. I struggled to find a way to interface these two at first, but eventually, with enough testing and experimenting, I was able to use webRequests in Unity to acces the Google Sheets.
Accomplishments that I'm proud of
This is one of my first backend experiences, and I am extremely happy that I was able to connect Unity with Sheets in time. This is definitely a versatile skill as well, so I will be able to apply it in the future.
What I learned
I have learned a lot about full stack development, having to develop an app and a database in such a short amount of time. I have also learned about Unity's webReqeusts, which will be super useful in many different applications.
What's next for SyncSchedule
I have a plan to improve SyncSchedule's workflow, allowing teams to create multiple schedules for multiple subteams, and maybe even organize a chat for managers to leave requests for open times. I believe an application like this has amazing potential out in the working world, especially in isolated times such as now. Even with a lack of personal communication, SyncSchedule could possibly fulfill that gap between people, connecting them and allowing them to plan meetings as if they were there in person. Even after the pandemic, SyncSchedule provides accessibility and convenience to teams, because of its simple graphical interface, quick and easy inputs, and simple backend maintenance.