Updates on my astrology app...
Posted: Thu May 09, 2019 6:38 pm
Hi all!
I just felt like making an update.
About a year ago, I was finishing up my final exam project for an online computer science course that I was taking. This project, my first "from the ground up" coding project, was an astrology application. (My questions related to astrological computations are still scattered around the forum.)
As it existed then, it was basically one giant, messy, 1000+ line script that popped up a little interface and produced a text file with planetary locations and aspects for a natal chart, or solar or lunar/demi-lunar return.
I was quite proud of it at the time.
However, my original goal was always something that I could give back to the sidereal community at large - something free that those without access to Solar Fire could trust, that would allow them to learn and join in with the rest of us. Also, something written cleanly I just didn't have the coding chops to produce that at the time. This would be a real web application - go to some www address and bam, there's a full-power astrology application waiting for you to calculate your solunars, progressions, etc with.
While I am still a newbie developer, I am an order of magnitude more prepared now than I was a year ago, and have been steadily working on a real release of this application.
The back end (the part you won't see) of it is in its alpha stage - an API that accepts an HTTP request, parses date/time/location info, does whatever calculations are requested, and replies back. It's a work in progress, but it functions as intended - and is 100 times cleaner and more efficient than what I wrote previously. This is not deployed anywhere yet - meaning the server literally runs on my machine when I fire up the main Python project file. Obviously, I will have this running on a remote server when the time comes. It's not as clean as I want yet, and I need to write a test suite and all of that, but it's about 70% done, all things considered.
The front end (the part you will see) is what I'm about to start tackling in the next month or so. This is actually considerably harder for me! I'm expecting the hardest part to be generating the actual chart graphics - I'm not aware of any JavaScript library that accomplishes that in a remotely aesthetically-pleasing fashion (and trust me, I've looked), so I plan to write one myself as a Node module (by which I mean I need to learn D3.js well enough to coerce it into drawing horoscopes and wrap that up into a library).
All together, I hope to have something that we can start testing natals, solunar returns, progressions, etc with by the end of the year.
For those of you who are into perusing code, here's the git repo where I'm storing everything.
https://github.com/lightningandthunder/astronova_api
There's some stuff in there that is old and will be removed eventually (calcs.py and astrosetup.py most of all). The most interesting files are in src/dll_tools. Virtually all of the calculations you could care about are in chartmanager.py.
None of this would be possible without all of your help, so thank you, and I hope to be able to contribute this as soon as I can manage it.
I just felt like making an update.
About a year ago, I was finishing up my final exam project for an online computer science course that I was taking. This project, my first "from the ground up" coding project, was an astrology application. (My questions related to astrological computations are still scattered around the forum.)
As it existed then, it was basically one giant, messy, 1000+ line script that popped up a little interface and produced a text file with planetary locations and aspects for a natal chart, or solar or lunar/demi-lunar return.
I was quite proud of it at the time.
However, my original goal was always something that I could give back to the sidereal community at large - something free that those without access to Solar Fire could trust, that would allow them to learn and join in with the rest of us. Also, something written cleanly I just didn't have the coding chops to produce that at the time. This would be a real web application - go to some www address and bam, there's a full-power astrology application waiting for you to calculate your solunars, progressions, etc with.
While I am still a newbie developer, I am an order of magnitude more prepared now than I was a year ago, and have been steadily working on a real release of this application.
The back end (the part you won't see) of it is in its alpha stage - an API that accepts an HTTP request, parses date/time/location info, does whatever calculations are requested, and replies back. It's a work in progress, but it functions as intended - and is 100 times cleaner and more efficient than what I wrote previously. This is not deployed anywhere yet - meaning the server literally runs on my machine when I fire up the main Python project file. Obviously, I will have this running on a remote server when the time comes. It's not as clean as I want yet, and I need to write a test suite and all of that, but it's about 70% done, all things considered.
The front end (the part you will see) is what I'm about to start tackling in the next month or so. This is actually considerably harder for me! I'm expecting the hardest part to be generating the actual chart graphics - I'm not aware of any JavaScript library that accomplishes that in a remotely aesthetically-pleasing fashion (and trust me, I've looked), so I plan to write one myself as a Node module (by which I mean I need to learn D3.js well enough to coerce it into drawing horoscopes and wrap that up into a library).
All together, I hope to have something that we can start testing natals, solunar returns, progressions, etc with by the end of the year.
For those of you who are into perusing code, here's the git repo where I'm storing everything.
https://github.com/lightningandthunder/astronova_api
There's some stuff in there that is old and will be removed eventually (calcs.py and astrosetup.py most of all). The most interesting files are in src/dll_tools. Virtually all of the calculations you could care about are in chartmanager.py.
None of this would be possible without all of your help, so thank you, and I hope to be able to contribute this as soon as I can manage it.