Or SDB for short.
I’ve begun (ok, I have more than 100 hours in it) to design a secure online database program (in PHP) for a new mission organization. I originally thought that it would be a quick and painless thing, but as security is an issue, and I want it to generate pretty PDF documents as reports, it’s turned in to quite a job. But I have learned a ton from it! Among other things, I have learned:
- All about having a user login system, and what it takes to make it somewhat secure
- A new way of storing information that gets passed from script to script (like all the variables that make up the huge form the user just filled out, so they can go back and edit it instead of starting over) which uses a (semi) temporary MySQL table
- All about encryption, including symmetric and asymmetric uses (including how to use GnuPG from the command line AND from php)
- A bit about compressing files and creating ZIP archives
- Why custom software costs so frickin much!
Along the way, however, I picked up another job! The person who is funding this whole project wants me to adapt it to be used in a different (albeit similar) institution. So that got me thinking: What else could I do with all this hard work?
I’ve decided that after I get the two databases set up, I will undertake the project of making it more customizable, and release it as an open source project. In the past few years I have benefited immensely from the open source community, and this could be my chance to give something back! If anyone reading this would like to contribute to this plan (by helping me adapt the code so it’s more easily installable, or helping me form the legal documentation that needs to accompany a piece of open source software, or anything else you can think of), feel free to drop me a line. I doubt if I’ll turn away any help.
Now, after saying all that, it’s quite possible that (especially without help) this project will fizzle out long before completion, but I’d like to think that I could stick with it for a while. I do enjoy coding for a purpose, and this is one of the most admirable purposes to which I’ve ever employed my coding efforts.
I’m sure I’ll let you know how it goes. 🙂