DEV Community

Katie Adams
Katie Adams

Posted on • Updated on

Non-profit projects: how to work with little to no finance?

I want to implement a database solution to store animal interest forms on. Their current system of sifting through papers is janky to say the least.

Does anybody know of any cheap, preferably free or open-source, database providers I could work with? I've looked at AWS etc but they're all incredibly pricey for a non-profit organisation.

EDIT: Extra points if I can connect the database back-end to an online web form.

FURTHER EDIT: Have decided to build a local MySQL database, with regularly scheduled backups. Thinking that the online form could return JSON data that I will allow to be parsed into the database. Any thoughts further to this?

Oldest comments (4)

Collapse
 
vyncemontgomery profile image
Vynce Montgomery

For a small amount of data, you can run a local SQL database or, in many languages, save time and headache by storing the data in a native data structure in a flat file locally.

MySQL and PostgreSQL are good, powerful SQL engines to learn for later applicability in the real world. SQLite is easy and honestly good enough for most small projects.

In Perl, I used to use the DBD::CSV module. Similar such things probably exist in any language you're thinking of using.

Searching Google for "SQL CSV" turns up TextQL, which looks like it might be a very flexible hybrid of my responses. Another option is to use the Google Sheets API

Collapse
 
katieadamsdev profile image
Katie Adams

This is a great start. I'd honestly been so caught up with doing things 'right' I'd never considered just keeping things local! Thank you for this.

Collapse
 
eostrom profile image
Erik Ostrom

One caution: if you go with a local database, make sure it works with your backup strategy. Standard backup software may not be enough – if the files are backed up while your database is being modified, you can end up with a backup that's part "before" and part "after," and not consistent.

Depending on your needs, you might be able to just schedule backups and database access at different times. Or use the database's backup tools (e.g., mysqldump) to make a snapshot of the database at a scheduled time, and later back that up.

Collapse
 
katieadamsdev profile image
Katie Adams

This is great advice, Erik. Thank you so much; I'd not have considered this aspect so this is super helpful. :D