Python Forum
Order of Operation for creating organizational database software
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Order of Operation for creating organizational database software
#1
Hello! I’m a music composer and am looking to try to build an organizational database to keep better (and more in-depth) track of the music I create. I got referred to Python code by a friend of mine a couple of weeks ago. I’ve watched a lot of tutorials online (Sentdex’s youtube page) and am working through the “Automate The Boring Stuff with Python” e-book. I’ve been following along with the e-book and youtube tutorials in IDLE Python 3.6.2. as well as DB Browser for SQLite (3.9.1, Qt 5.7.1, SQLCipher 3.11.0). I’m on a Mac; OSX 10.9.5.

I’d like to build a piece of software that does the following:

* Displays info for each track: running track count, track titles, track metadata (i.e. genre, duration, tempo, key, music library/publisher, etc)
* I’d like the ability to either enter this information in manually (using a separate window to enter the info into) or to scrape the info from a CSV or PDF, which would then populate the table(s).

* Keeps track of all royalty/revenue earned for each music title.
* I’d like the ability to either enter this information in manually (using a separate window to enter the info into) or to scrape the info from a CSV or PDF, which would then populate the table(s).

* Run a bunch of different reports on all of this information.

* Has a very simple gui that is agile with searching, sorting, and reporting.

While I’m pretty confident I can find a lot of answers to my programming questions here on the forum and via Google and Youtube, my biggest question is: What should my order of operation be with putting something together of this size? Should I be starting with building out tables of information first, then move to a gui, then work on the pop-up ‘add info’ windows, then fork in being able to scrape info from other forms to populate the table(s), then work on programming different reports, etc?? I don’t know what order my creative steps should be in.

So I’m asking you all to weigh in so that I have a better idea of which way to head first. Thanks for any insight you can offer me…and please let me know if you need more info.

Thanks!
- Mike
Reply
#2
I would say do this in two phases. In the first phase keep it simple: no gui, basic data (the most important stuff), manual entry and some csv, and some basic reports (in that order). This phase will serve two purposes: get you up to speed with Python, and show you the problems with your initial plans. Then you go to the second phase, which is the full application. If you do the first phase modularly, with a lot of functions and classes, you will probably be able to reuse a good chunk of the first phase code for the second phase.
Craig "Ichabod" O'Brien - xenomind.com
I wish you happiness.
Recommended Tutorials: BBCode, functions, classes, text adventures
Reply
#3
Start with console app, create different modules/files for different operations. eg- adding data to database, retrieving from it, running reports etc.
In this way, you'll already have backend for your app when moving onto GUI.

Note: You'll probably want to use object oriented approach here. And check out sqlalchemy it may be helpful.
Reply
#4
Excellent! Thank you both for the feedback!
Reply
#5
If you want to print the scores themselves, you can do this with lilypond: http://lilypond.org/
I have used this from within a python program. What I did with it may or may not be of use,
but will reference here: https://github.com/Larz60p/MusicScales

Warning -- I wrote this when I was just learning python, so style may be an issue

Have fun!
Reply
#6
Thanks so much, Larz60+!!! I'll have some fun looking through this! Much appreciated!
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  I need help parsing through data and creating a database using beautiful soup username369 1 1,680 Sep-22-2021, 08:45 PM
Last Post: Larz60+
  Error creating database with python and form? shams 3 2,327 Aug-02-2021, 02:00 PM
Last Post: deanhystad
  Creating a persistent list/database Trinx 1 2,223 Feb-27-2019, 06:20 PM
Last Post: ichabod801
  Database operation exception handling LostInCode 1 2,448 Jan-03-2019, 07:50 PM
Last Post: jeanMichelBain
  Best software for creating printed reports? birdieman 5 4,358 Feb-02-2017, 02:39 AM
Last Post: birdieman
  Best software for creating charts???? birdieman 9 6,217 Jan-13-2017, 07:20 AM
Last Post: wavic

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020