First of all, what is a birth chart? It is related to astrology. It shows different astrological aspects related to you. Not my field, if you want to learn check out the Wikipedia page.
Astrology may be a controversial topic to some, so I will keep it short: I am not a believer, but I think everyone can believe whatever they want.
Personally, I am more interested in the technical side of the challenge.
Why it exists
Originally, it was supposed to be for a business specializing in selling astrology stuff, specifically selling physical personalized birth charts in a frame. As of now, said business is not operating publicly.
There are personalized birth charts on Etsy, but they are a bit expensive, probably because each one is made individually. The goal of this software is to mitigate the human factor in creating the chart and to drive costs down.
There are automatic generators for those out there, but all of them look... rather suboptimally:
With my solution, you could create the most beautiful design for a birth chart and fill the template with your assets, and it will make the same thing, but beautifully (or at least as good as you can design it):
How?
As mentioned, I am not particularly into astrology. Fortunately, there are modules out there that generate all the data for you.
What I did do is create the templating system. It is in a JSON format, so probably not the most user-friendly, but it was easy to use: you define what background to use, what fonts, sizes, colors, gradients, etc., and you define that for all physical sizes that are supported for this particular design.
After that, it is just a matter of entering the user's data: user's name, birth date, birthplace (and optionally birth time).
The time it takes depends on the size. For A3, it takes about a minute.