I am new to software development in general. My skills are probably best described as intermediate. I have done a lot of programming, but I have not mastered any particular language. I have much studying to do to learn all the skills necessary for this.
I want to develop a desktop accounting application like PeachTree or QuickBooks. All data is hosted on the local machine and there is no need for a web server. At some point, I may want to be able to host a local server on a network and access the app through clients on other computers. Also, there is no need to have multiple users access the same database at the same time. Both of these conditions may change in the future but are not necessary for me to address at this time (I don't believe).
Years ago, I built an accounting application using Microsoft Access (not sure if that would be considered an application) with a split database design. The entire database is contained within two files: mydb and mydb_be (front and back end). I have not used those other accounting apps in many years, but as I recall, the data was stored in either a single file or a single directory, but certainly NOT in a central repository nested deep within the database program's default file structure and data directory like it is with Postgres (and probably many/all of the others) with names like '16254' instead of 'MyBiz'.
In the case of my MS Access app, I can move, copy and delete mydb using the typical OS commands like cut/paste/delete and drag and drop. There is nothing to export or import. Again, as I recall, it was something similar with the commercial applications.
I may have 15 different databases, each for a different entity. I may want to change file structures for my "accounting" directory or copy to a usb drive and move it to another computer, open it there, or maybe back up to an external drive. The directory for each entity may contain files or folders (e.g. a directory for taxes) other than the database files and they all need to be kept together. I cannot expect my target users (maybe 10+ years old) to perform such database management tasks. Among other things, the app is designed to teach children how to do accounting, not database management.
So, the question is, is there a way to store individual Postgres databases in different locations in a packaged way where all the necessary data for an individual database is stored in a single file (like MS Access) or in a single directory, such that I can move the files around and open them from my application? In other words, clicking open file would allow me to navigate to ~/myaccounting/entity1/entity1db.file, or /entity2/entity2.file, or perhaps a directory instead of a file. Maybe my file extension would be 'kac' so I would double click on a file with the .kac extension to launch the app.
I plan to use PostgreSQL and Python to develop an interactive console app to start. Once I have proven the concept, I will develop the GUI.
Clearly, there are many concepts I haven't yet learned. I feel like I need to understand this before I get to deep into my application.
EDIT And if not, what else should I look into (thanks Adrian Klaver)? What keywords should I search or what concepts should I study?
Thanks for the help.