TaskMe is a real-time project and task management system built for teams. I built the frontend with React Native and the backend with NodeJS, Express, and Socket.IO. While it was one of my first mobile applications, I’m proud of it as it is packed with features and I designed the Socket.IO backend to be extensible and neat.
A feature that I had a lot of fun building was customizable task widgets as in the image below. A task has basic properties like task assigner, task assginees, date, status, etc and additional optional properties known as “widgets” such as checklists and attachments. I will include more images as I find time to redeploy the app.
Also precisely because it was my first application, I encountered numerous issues building it. Several of them were problems intrinsic to distributed systems such as race conditions, and some due to latency as the backend servers were hosted on Heroku in EU. Nevertheless, I developed solutions from researching about these issues and I am thankful that these issues surfaced as I learnt a great deal about computer science and software engineering fixing them. I will be writing about these challenges here when I find the time to do so.