Hi, I intend to set up a small cloud-based accounting web app for the first time, more as an experiment for friends & family - maybe as a small business in the future. I am proficient in Python (would like to stick with Python if possible), however quite new to web development (I know basic HTML, CSS, and JavaScript). From research and discussions with friends, I got recommended Django for the backend and React as frontend framework, besides using PostgreSQL for the database part and hosting via AWS.
I want to use the website to allow users to upload pdf invoices, save them in the cloud, and provide basic bookkeeping/accounting and reporting, i.e., show a chart with monthly revenues, the number of customers, create a simple P&L, etc.
Would you consider the proposed stack to be suitable for that purpose? Also, any recommendations for further learning/reading on that topic is much appreciated. Thank you very much in advance!
I have used react, django, and postgre. For a starter all of that is already good enough. When use framework or programming language i tend to look at the community(for better supporting). it would be better if you also use docker container to isolate your software for better development and deployment.
Django is great if you're new to web development. It'll handle all the annoying things like user authentication and data migrations that you really won't want to manage yourself.
Since you're quite new to web development, you might not want to jump into React right away. Django provides a good templating language that'll let you customize the front end of your app without having to worry about state too much. Once your needs get more complex, you can add React into your project one component at a time.
As for databases, PostgreSQL is a great choice. I wouldn't go with AWS for hosting though; DigitalOcean has all the functionality you need at the same price, but with a much more user-friendly interface for beginners. You'll probably be using Droplets for server hosting, DigitalOcean Spaces for file storage, and DigitalOcean Managed Databases to host your database.
You also mentioned generating charts. Chart.js is quite popular and easy to use, and should have all the functionality you need for an accounting app.