[NEWBIE] Help me understand creating new module/app for a TV Production company

Good day everyone,

ERPNext version: ERPNext 6.27.9-3 (64-bit) via Bitnami VirtualBox https://bitnami.com/stack/erpnext/virtual-machine using NAS4Free

From the About page:
ERPNext: v7.0.38
Frappe Framework: v7.0.30

Basically I’m running a TV Production company, and for the longest time we’ve been using many solutions at the same time for our own use as we see fit - Celtx, Excel to store our lists, and sometimes Word tables, and folders all over the place. So when I upgraded our central shared storage to NAS4Free it came with virtualbox, and found out about ERPNext and seems to be that ERPNext might just be the best thing for us to centralise our documents and infos and images and everything else.

So after reading the user guides in github, and trying to modify some of the premade modules (and screwing up everything because I didn’t really understand the guide :sweat_smile: I decided to create my own module/app just for my own simple use. I made a database table-ish mockup of what I wanted to achieve using some really bad handwriting :grin::

My tables mockup @ imgur

Basically these are the things I wanna achieve:
Master table: TV Program Type table: Telemovies, documentaries, sitcom, series, tv magazine, reality tv
|-> List of [Program Type] table: telemovie list table, documentary list table, etc
…|-> [Program type] Description tables: year, category, additional category, episodes, minutes, the tv channel it’s shown, synopsis, casts/artists (able to add as many casts as I want), poster (able to upload image)

So my questions are:

  1. How should I start? Create an app for the “master table” or module? how about program table and description table? as a module or a doctype? Sorry but I just don’t really understand the ERPNext structure
  2. How do I do these and link them as what I drew?
  3. What’s the best way to extend this? For example, in [Program type] description table I’d able to click on the cast/artist name, and it’ll go to the artist’s description and bio
  4. I have a lot more things to implement, but this will do for now. But if everything goes well, I plan to share what I will create to everybody because I really think that this will 100% benefit the tv & film production community, at least for the thousands of production companies in my country. So how would I “package” this? As an app? How?
  5. What do I do to make this module/studio app appear on my desktop? because no option under show/hide desktop.
  6. What I just did:
    App name: studio
    Module name & Name: Telemovies
    Module name & Name: Sitcom

DocType: Telemovie
Document Type: Document
Module: Telemovies
Fields
Number [Type: Data, Name: naming_series] -> is naming_series kinda like table ID in mysql?
Year [Type: Int]
Category [Type: Select, Name: tele_cat, Options: Horror, Comedy, etc etc]

only checkbox is Is Submittable. The DocType Sitcom is similar to this.

Is this the best way to do it? If so, how would I “link” this with other tables?

Any help, or urls to explanations to my points would be greatly appreciated. Cheers and thanks! Sorry for the long post, here’s a cracker :rice_cracker:

1 Like

You should first go through these documentations:
http://frappe.github.io/frappe/user/en/tutorial/

I did. But as I said, with my limited knowledge, I just couldn’t fully understand the guide to suit my needs (for example, see my question #1). Hence I list down the clarifications that I need to know and understand so I can make this personal project a reality.

I think you are good so far. For linking doctype read this:
https://frappe.github.io/frappe/user/en/tutorial/naming-and-linking

A couple things:

I think it makes sense to create one app that holds all this information, and have modules as needed.

  1. Create a single app with a document called “Program”
  2. Have the fields that you’ve listed, but include another field called Type, that will be a Select type, with the options: Telemovie, sitcom, documentary, etc
  3. Create another Doctype called Episode, which will be a child table in Program.
  4. Create another Doctype called Actors (and a second child table doctype called Episode Actors, which will be a child table of Episode).

I think this will be a very big undertaking to get working the way you’d like. I hope you’ve got some python programming experience.

3 Likes