Jestersix

A new DBTC system

svreef

Webmaster
BOD
I've started work to provide the club with new software custom tailored to support DBTC.

I have played around with existing software such as AirTable, Coda and others to see if we can coerce them to provide these features, but they all fall short and could get expensive. So, the plan of record is to develop new software to meet our needs.

For starters, I have created a design document to capture the basics. Even though there is a lot more we can do, I believe that starting small with a sound foundation and getting that to work is the best way. We need to "cycle" the idea.

My current thoughts are captured here: https://docs.google.com/document/d/1r7PctGeTdJkg0-hwF6azzK3Ak0tX98wjo99APQkIoTw/edit?usp=sharing

Everyone is free to comment on the document and if you'd like to help further, I can make you an editor.

If you have experience with Web UIs or would like to help in any capacity, please let me know.
 
The document looks good, you did a thorough job. Is the plan to integrate this into the forum site, or will it be a standalone application? If standalone, then we will need a user table, and views for account creation and deletion.

I will look through and make any comments.
 
The document looks good, you did a thorough job. Is the plan to integrate this into the forum site, or will it be a standalone application? If standalone, then we will need a user table, and views for account creation and deletion.

I will look through and make any comments.

Thanks. I believe integration with the forum credentials is a must. I’d hate to deal with a separate system for that. Fortunately XenForo has some utilities for that - and it use MySQL.

We can create the app in the same domain so that cookies flow through.

I’m leaning towards a JavaScript framework because I’m a JS engineer. I can do everything that is not HTML or CSS.
 
This plus what you’ve shown on other threads is looking great so far!

I have a couple non-technical suggestions. Please don’t take offense if they are too obvious and you were already planning them.

1) Mike @Coral reefer is the DBTC chair, and also the person in our group who has thought the most about how this should work (and not work). Although he will be the first to tell you he is not tech-savvy, please take some time to virtually sit down with him and explain exactly how your system will work for users at each level. I am sure it will be fruitful. Or if you both would rather, we could do this walkthrough of the user experience at the next Board meeting.

2) As I’ve mentioned elsewhere before, we had a DBTC tracker before, and the reason we don’t anymore is because the person who developed it moved on and no one else could work on it or make it work with our website upgrade. Whatever you come up with needs to be something that anyone with some technical experience could take over from you if needed. It may seem like the planning stages are too early to consider this, but I assure you it isn’t. For example, if you have to choose between a standard implement of common software that gets the job done but has some functional limitations vs something super specialized that is perfect for our needs but only you can tell what is going on behind the scenes, choose the former.

3) If needed we already have a separate web domain for DBTC you can use. @rygh has the details.

4) The Board has reiterated many times that we strongly support this both in spirit and financially, as needed. If there are any less-technical ways we can help please let us know.

And again thank you for taking this on!
 
This plus what you’ve shown on other threads is looking great so far!

I have a couple non-technical suggestions. Please don’t take offense if they are too obvious and you were already planning them.

No offense taken - I can be a real professional about this stuff. I accept all honest feedback.

1) Mike @Coral reefer is the DBTC chair, and also the person in our group who has thought the most about how this should work (and not work). Although he will be the first to tell you he is not tech-savvy, please take some time to virtually sit down with him and explain exactly how your system will work for users at each level. I am sure it will be fruitful. Or if you both would rather, we could do this walkthrough of the user experience at the next Board meeting.

I can't believe I neglected to consider the number one stakeholder. You are absolutely right: I'll run everything past Mike.

2) As I’ve mentioned elsewhere before, we had a DBTC tracker before, and the reason we don’t anymore is because the person who developed it moved on and no one else could work on it or make it work with our website upgrade. Whatever you come up with needs to be something that anyone with some technical experience could take over from you if needed. It may seem like the planning stages are too early to consider this, but I assure you it isn’t. For example, if you have to choose between a standard implement of common software that gets the job done but has some functional limitations vs something super specialized that is perfect for our needs but only you can tell what is going on behind the scenes, choose the former.

I am well aware of this and will take all necessary steps to keep it simple and leverage every available means to make it maintainable.

3) If needed we already have a separate web domain for DBTC you can use. @rygh has the details.

Yes, I found this on the web server and I intend to poke through it to see what's there and what could be re-used.

4) The Board has reiterated many times that we strongly support this both in spirit and financially, as needed. If there are any less-technical ways we can help please let us know.

And again thank you for taking this on!

Understood. Taking it on is a pleasure for me. If there's one thing I'm good at is delivering great software. And, being able to do that for this club makes it that much better!
 
I would love to help out on this. I am computer science undergrad student and would love to take on or help out with the project. I will be the first to admit I am not super experienced and I am sure there are many more experienced engineers in this club but I am very willing to put the time in and learn what's needed.
 
I would love to help out on this. I am computer science undergrad student and would love to take on or help out with the project. I will be the first to admit I am not super experienced and I am sure there are many more experienced engineers in this club but I am very willing to put the time in and learn what's needed.

Thank you! We’ll put you to work once we have the team together
 
I really like the idea of a separate system that only queries the main database for user information.
1) Safety
It is far less likely to screw up our database. Mistakes happen...
2) Support.
We can continue normal Xenforo upgrades on our main site and not worry about killing DBTC.
3) Design
We can use simple JS for the new DBTC, and not require an expert in XenForo to make it happen.
 
I really like the idea of a separate system that only queries the main database for user information.
1) Safety
It is far less likely to screw up our database. Mistakes happen...
2) Support.
We can continue normal Xenforo upgrades on our main site and not worry about killing DBTC.
3) Design
We can use simple JS for the new DBTC, and not require an expert in XenForo to make it happen.

Yes - the isolation is great. I got this working today from JavaScript - and we can get all the relevant user information with a single call to a XenForo API.
 
Hi - PM here ;-).

A few suggestions on the schema, overall looks good.

My sense is if we can avoid custom code and instead use a no-code solution that may be the easiest of all to maintain. If you know Bubble, Coda, or Airtable, we could probably pull this together in a pretty easy way that anyone in future can maintain.

+ and also we don't to worry about the running and maintenance of the app itself over time.

The reason we'd want to do this is because if we get locked into even a simple app, what happens if you leave? Where is the data stored? How do we pull out and re-upload all of the DBTC data?

Definitely not against building this system, just hoping we can make it durable on the order of a decade :)
Cheers
 
Hi - PM here ;-).

A few suggestions on the schema, overall looks good.

My sense is if we can avoid custom code and instead use a no-code solution that may be the easiest of all to maintain. If you know Bubble, Coda, or Airtable, we could probably pull this together in a pretty easy way that anyone in future can maintain.

+ and also we don't to worry about the running and maintenance of the app itself over time.

The reason we'd want to do this is because if we get locked into even a simple app, what happens if you leave? Where is the data stored? How do we pull out and re-upload all of the DBTC data?

Definitely not against building this system, just hoping we can make it durable on the order of a decade :)
Cheers

Oh snap, we have a PM now! (Project Manager, pointy haired boss)
Just kidding, of course - I truly value your input.

I've spent a week trying all those solutions but they all have issues:
  • Airtable comes the closest but still leaves a lot to be desired. They charge $20 per user per month. They don't support per-row permissions (think about the frags I own vs. the ones you own). And, one would need a separate account - no integration with the forum user database.

  • Coda doesn't charge for every collaborator but has the same other issues. It also feels unnatural to run all of this from what they call a "doc".

  • Bubble is buggy and overly complicated. I think a nicely built custom app would be better, to be honest. Their pricing is a bit opaque.

  • I also tried Caspio, Zoho Creator and another one that I can't even remember.

The data will be in a simple database (SQLite) - a single file that can be easily backed up and copied. I also plan to train others and have them collaborate with me while building it so I'm not the only one with the knowledge. I already have a prototype (think 1/4" frag) in a github repo. I'm starting out with JavaScript, Express, a template engine and SQLite. All are readily available and have a low barrier to entry even for inexperienced engineers.
 
I implemented a big chunk of the basic functions today. You can add items to the database, make frags available and give frags. It is all raw HTML with no styling and there is a lot to be done still but it's far enough that I can add some collaborators.

It is not on our server yet - it is a stand-alone app for now. It lives in a private repo in github.
So, if you have a github account and are familiar with git and node, you can take it for a spin. If you'd like to do that, PM me your github email address and I will invite you as a collaborator.

I can use a lot of help with CSS, HTML and some of the trickier things I know nothing about, like dealing with pictures.
NOW IS THE TIME TO JUMP IN!
 
Man - you are tempting me to dust off my node skills, but with a newborn at home I won't win any fans debugging code ;-).

If you need user testing, happy to install the app and try it out though.

Thanks for doing this!
 
I came up with a name for this thing:

BARcode

For BAR COral DatabasE.

Also, I realized that you’ll be able to easily keep track of your own corals with it - because you can add them and never make frags available. That keeps them out of DBTC - they stay in your own collection.
I actually like this use case as well
 
Back
Top