What to build, a webapp or an application?

I am totally new to programming, not sure what to learn first? I work for a non-profit organization and we need a custom system to track our clients, the county they live in, services provided, the program that provided the service, how many times in the current month they were served by each program. Also a way to record additional notes regarding the service provided, whether it was a new device or transportation passes and would like these to be dated and saved to the clients file chronologically. We also would like to be able to pull certain info each month for a monthly report to track numbers of those served. Any advice, suggestions would be greatly appreciated!!! Thanks in advance

Great! There’s a lot to learn!

This is a rather complex list of requirements, for what I assume to be an application that will evolve over time. I also assume this description is missing more specifics that are just not listed, so the requirements are rather detailed.

So there is a gap between where you are (new to programming) and where you need to go (the app requirements).

Figuring out the “bridge” between those two points is the sort of path you want to take, then you must actually “walk” that bridge. This means you’d need to learn what you need to know, and then go out and learn those things so you can build this app.

Furthermore, you may get partway through your learning and realize your going the wrong way!. Maybe the app’s requirements are different than you originally thought, or new ones come through requiring you to change what you already know, or you realize your doing something wrong! Because of this its possible the entire process may take longer than expected, as its hard to estimate what you don’t know you don’t know.

So what to do then?

The most important factor to consider with projects like this, is the amount of time and effort you have available to learn and build a project like this, while considering how important the investment of learning how to program is to you.

If you just want to learn a few things so you can build this app and move on, then I wouldn’t try to do this yourself. Find someone who can do it, or is willing to do it, rather than commit to learning all that is required to build it from scratch.

If you are interested in learning programming, want to invest time to do such, while also accomplishing the task of building this app, then awesome! I’d continue to learn programming. FreeCodeCamp teaches web development, which could be used to build your application on the web. It would be accessible, highly supported, and more easily deployed than most other options, like a native desktop app. Learning web development is one of the easier entry ways into software development simply because the web is everywhere. As such knowing web development has a lot of potential in the near term job market, so there is decent demand.

The choice is ultimately up to you, just understand that its an investment of time and effort you may not want to commit, or have available.

I know there is a ton of info missing, tried to make it a brief post to help figure out a direction to go. Seems like what I’ve researched it’s going to be easier to build a web app versus a desktop application. I guess what I’m looking for is, would a web app be better suited for what is needed over an application. The easy way would be to subscribe to a digital crm software system, which has way more functionality than we need especially since we are non-profit. We don’t need all the bells and whistles, but we would def need to modify it for our needs which is not an option with what’s on the market today. That’s why I thought a website/ app would be better that way it can be built to do exactly what we need. Another dumb question would Microsoft Access be a better option, I know I would need to learn VBA scripting to make it do what is needed.

The devil is in the details. Something like “it needs to work offline” would mean the advantages of a web-app version wouldn’t apply as much. It could still work, where a webapp runs “offline”, but it would be dramatically more complex just to keep par with a localized version.

There’s also the question if this is centralized or not. If you just need an app on 1 computer and never on another, then a desktop version would be easier to maintain and be cheaper. However, if you want to run the app from multiple locations, a web app version is the obvious choice.

There’s also “mixed” options, like building a desktop app using web technologies, using something like electron. This would allow your app to leverage web tech like React, and have the UI run with HTML/CSS/JS, but not need a full stack server setup somewhere.

This would be the most useful if your most comfortable with web development.

Ultimately the limit isn’t the technology of your choice, its your experience.

Whatever you pick, your highest risk factor by far is time, and effort for learning what you need. If you don’t have much experience, you will need to gain enough to build the app and figure out any and all problems you run into. I don’t know of what deadlines you have for this project, nor am I sure how fast/far you can push through with whatever you do pick.

Even if you had all the experience in the world, or you had the greatest coder who has spent multiple lifetimes learning this stuff, the type of requirements your mention make it seem like a few months project. With a “god-coder” who knows everything already, they would still need to go through the requirements, tweak based on feedback, and do the actual work over time. Overall it seems like this isn’t a small project, its a commitment now and over time. So if you need to learn everything from scratch before starting, your looking at more than a few months.

You can probably do things faster with VBA, then pay the price later when your code is a mess and having bugs as VBA is notorious for bad code. Or you can pick a more traditional solution, like a full-stack-web-app and spend vastly more time learning all that is involved. Or you can just bite the bullet and pay for the full solution and “pay” with $ instead of time.

What is the right choice really goes back to your personal reason to look into coding. I believe if you aren’t interested into investing into yourself by learning this stuff you shouldn’t do it yourself. It will take vastly more work, time, effort and be more risky doing it yourself. However, if you want to learn programming for now and the future, then this is a great project to “build toward”. Then it becomes more a question of deadlines and learning what is needed, rather than a question if you need/want to commit all this time and energy required

Definitely want to learn it, I would like to be able to design and build websites as a side gig. Not sure what group or groups of language to learn. So far it seems that I’ve looked at most of the recommended starts and my take is HTML, CSS, and JS for the front side. Would also like to understand the backend too, so I should probably look at a fullstack developers course. What software should I focus on? That seems to be the loaded question that no one really comes out and a,b,c and 1,2,3. It’s overwhelming to fathom learning a little of all languages to be able to build a site from start to finish that way. Thanks for your advice I appreciate it very much.

Awesome!! :smiley:

This is an easy question. The web is built on 3 technologies: HTML/CSS/JavaScript.

Thats it, everything else you can learn essentially boils down to those three, as that’s the only 3 the browser understands (for the most part).

The back-end is essentially everything not running within the browser. So the doors open much more in terms of options of what you can pick. Which is basically anything and everything.

FreeCodeCamp goes over what is called the MERN stack, which is an acranym for 4 of the key technologies:

  • MongoDb - NOSQL database
  • Express - nodejs web framework, used to create endpoints
  • React - front-end library/framework used to create user interfaces
  • Nodejs - JavaScript runtime, allows you to use JavaScript to create web-servers

Those 4 together can be used to create your project as a full-stack web app. However its vastly more complex than learning just these 4 things. Each of these 4 things could be studied and focused on as their own job. This also doesn’t include a bunch of other stuff you’d probably need/want to learn, such as git, github, npm, HTML/CSS/JS (which you’d use with React) database design, deployments and operations.

The main advantage of using or learning the MERN stack (or similar stacks) is your really only using 1 language: JavaScript, which is the language of the web. HTML and CSS aren’t really programming languages, they are more standards. JavaScript is what “makes the wheels turn” on the web. The MERN stack is where you take JS and apply it everywhere through your app. From getting data from your database via JSON-like syntax with MongoDb, to building your UI with React, its all JS.

There are alternate approaches, but if you want to look into web development, I’d start here with freeCodeCamp:

I also suggest looking into other resources while going through freeCodeCamp to get more context, and “alternate angles” to learning this stuff. No source is a one stop shop.

Good luck, keep learning, keep building :+1: