Unfortunately I've only developed 2 applications from ground-up, a shopping basket using Java and a Xamarin-based Android Quiz app with C#. I mostly have experience in HTML and CSS, but I'm on my 3rd year of software engineering so I have experience in things like SQL (data modelling, normalisation etc), SDLC, architecture, agile and so on.
The point is, I'm looking to develop a very basic webapp that lets users login with varying authentication and authorisation levels to CRUD (create / update / edit / delete) records of people. This app is supposed to be available on AWS / Azure and should be linked with a MySQL database.
Some stacks or software I've looked into with comments:
- .net core + Razor + + EF Core: Microsoft has some great tutorials for this, but unfortunately I gave up halfway after trying really hard. It's not that I can't make the app work, but most of the tutorial and code I started to lose understanding of e.g. OnPostAsync and FirstOrDefaultAsync usages. Initially I mirrored the steps but using my own more complex data models, but I reckoned if I don't understand it there's no point in building further (or is there? even if I don't understand at first should I keep going on?)
- LAMP (Linux + Apache + MySQL + PHP): I hear PHP is very bad for tracking errors through but it's supposed to be quite an easy language compared to Java/C#? Either way it feels like PHP has more community support available and is used generally for web anyway, especially for CRUD operations. I've found some tutorials on this too in PluralSight.
- Python + Flask: Never used this but I hear Python is extremely easy to learn and use. I'm not sure what the pros and cons would be of using this.
These are all the software I've thought of so far. It's important that at this stage for a beginner they're easy to learn from and manage solo as a developer, and have enough support i.e. community, to jump to for questions or to google/watch tutorials.
What are your thoughts about this? I'd love to hear your recommendations, and thank you for your time.