Build a TimeSheet App in 10 hours

The complain I heard from users almost every day is: " I can't wait so long to get it done". Sometimes, it's unrealistic . But at most times, we just have no agile tools or a good solution to solve the business challenges. The good news is that lots of good tools are emerging in the market.  In last week, I build a timeshare tracking application in 3 days!
This project comes from my paranoea: automating all processes.  As a lead, one of my responsibilities is  booking my BI team members weekly time sheets and managing all project budgets.  The work is tedious and boring. I do need an application to automate the data collection, providing time sheet submitting notification and data analysis interface. And it can be build pretty fast since this project is not in corporate capital budget.
First, I selected python as the programming language because it has lots of libraries and excellent community where you can find answers for all your questions. I use openpyxl to retrieve data from excel files and pymongo to write data into mongodb. yeah, It can be done using .net and sql server express too. BUT, python makes me to do the same work in fewer line of code and still supports object-oriented programming. Mongodb, the document database,  allows me to dynamically modify the schema very easy. That's extremely important to agile development.  It took me 2 hours.
Second, after the data is collected in database, I need a presentation layer to visualize the data. I selected Power BI which is so easy to build an interactive online dashboard and share with your colleges. It supports variant data sources and provides an internal ETL tool to manipulate the source data. Although ETL functions are limited, it's still impressive and good for light weight usage.It took me one hour.
Third, I need a tool to notify my team members to submit time sheets and save these files to  a folder for python program to pick them up. I selected K2 product. K2 smartforms provides a faster, easier way to create a web application without code. And a K2 workflow could be scheduled for weekly notificatrion. This. This is the most time consuming part. it took me 5 hours.
Although mogodb could sit in Azure too, it's still a good choice to save the data in Azure blob storage. it can be accessed very easily and  cheap, reliable. I developed a python program to extract the timesheet data, standardized the project names and then upload it to Azure blog storage in csv file format. It costed me 2 hours.
That's it. It's not only automate the process but it improves the project management significantly. The Power BI report can answer lots of questions immediately to help me control the project expense. Power BI is one of the right things Microsoft did so far in BI area.

Comments