I recently published my first honest to goodness open source project. I have been working on this on nights and weekends for the past several months. My wife and I welcomed a new baby during that time, so I took a break from it for a while, and then picked it back up recently. It is still very much a work in progress, but I got it to a point that I am proud enough to share it with the world. So without further ado, meet Udon: https://github.com/DylanAllen/udon
I started this project because I wanted to build something from the ground up using modern web technologies. I decided to make a project management and time tracking system, because I knew I could build something better for my agency than the system they are using. I have learned so much in the process, and it has been way more fun than I imagined it would.
Udon is build with Vue.js, Vue Router, Google's Firestore database, Firebase authentication, and Firebase storage. I am running my demo site on Firebase hosting as well. So far all of the dev work has been well under the free tier for the Firebase services.
Once this product is ready for prime time I will probably set up a brochure site, outline all of the features, and offer it as a hosted solution if anyone is interested in using it. At the time of this blog post it does the following:
- Tracks basic project & client data
- Has project summary views in card format (pictured above), and table format
- Has filter and sort features for project list
- Allows users to create tasks within projects
- Allows users to log time to tasks
- Allows users to review time log data with filter and sort features
- Has a start & stop timer for time entry that is persistent across pages
- Has basic user account creation, profile, and password reset functionality
- Has realtime chat streams within each project
- Allows users to upload files to each project, download files, and delete files
That is about it. I would gladly welcome any contributions to the project, and in the near future, I will be looking for a brave agency to volunteer for beta testing!