Help me decide what technology should I use for this project

I’m a solo freelance programmer and want to write an app for internal project management, somewhere I can add projects, milestones, tasks, etc. and track them as I work on them, occasionally remind me of things like take a break, lunch time, etc. and over time I can track on which category I worked how many hours, etc.

I’m actually confused between whether to build this as a Web or Windows Desktop app. I’m considering latter because it can run efficiently on my laptop in the system tray using least memory and resources, web-based on the other hand will force me keep running an apache server too which will be an overhead (unless I host it on Google Cloud or someplace which might be an option?)

The only reason for considering web-based is that eventually I’m planning to make this tool open source and with web-based, many others can find this useful too (including OSX/Linux users). At that point, I may consider expanding its schema to include multi-user connectivity, client login, etc. but that’s going too far at this point!

The idea is that this tool should be useful not just for me but other freelancers, students, etc. who might be in my shoes. From that perspective, what do you think is the right technology to use? Web based or Windows based?

(I’ve extensively worked on C#/WinForms projects before and I’m thinking Visual Studio Express for desktop development. If web-based, it’ll be php/mysql based)

  1. Since you want it to be an internal project management software, you should go for Windows Desktop app.
  2. You can make it open-source once you’ve actually used it for some time and you’re sure it doesn’t need any modification.
  3. Take one step at a time. I’d suggest make it Window based for now.
  4. Visual Studio Express is a good choice for project management, and team-collaboration platforms.
1 Like

Remember that if you want/need to run a server, there are services to run them for free online. That would be a good bridge if you ever want to open them up to the outside world. Personally I think it would be better to do this as a web app. You can just run your web app locally and only allow it it access your remote services, especially since you want to move in this direction eventually.

1 Like

Thanks for the response. Yes, I’m thinking about desktop app, especially since it’s self-contained and doesn’t need any connectivity, at least for now. In future, I can always extend or migrate the functionality to web, right?

Thanks for the insightful answer. I’m aware of a few free services like Amazon AWS/EC2 but it’s limited for only 12 months. Other than that, there is only Google Cloud Data store which I believe has a long-term free tier. Do you know of any others?

I used heroku. I’m sure there are others. Also, AWS is very cheap for simple things and good experience.

1 Like

I used heroku. I’m sure there are others. Also, AWS is very cheap for simple things and good experience.

Heroku free tier is being removed:
https://help.heroku.com/RSBRUH58/removal-of-heroku-free-product-plans-faq

There are a few platform that can support specific aspects that have free tiers such as Google’s Firebase. However these platforms may or may not allow you to run things how you want. For example Firebase cloud functions only support nodejs.

Database’s usually don’t have a free tier of any kind, so if you plan on using MySQL odds are you’ll have to pay regardless of what other tech you want.

That said, you could run all of the server infrastructure on Digital Ocean an pay roughly 4-6$ dollars a month.

1 Like

Yes, you can always do that later on. Either extend with C# capabilities, or Migrate with automation tools.

1 Like