Creating an application for running a school

Gerry Seymour

MT Moderator
Staff member
Supporting Member
Joined
Mar 27, 2012
Messages
30,146
Reaction score
10,705
Location
Hendersonville, NC
Okay, let me start by admitting that I'm probably doing more work than I need to.

When I opened my current program about 18 months ago, I kept what little records were needed in Excel. Over time, I kept adding more worksheets to track more info (uniform costs, order I'd placed, student attendance, payments, testing/promotion, individual student records of what they'd been taught, etc.). I finally looked at it early this year and decided I needed some software. I looked at what was available and it seemed to fall into two categories:
  1. Inexpensive, and didn't do much of what I needed.
  2. Expensive, and might (couldn't tell) do most of what I needed.
I used to build applications in MS Access, and have been teaching database classes lately, so I decided to tackle this one, myself. After much planning and even more procrastination, I actually started building the application this week. I have most of the data structure in place, and have been testing that structure by entering the non-student data (lists of techniques, sets, ranks, locations, etc.).

I'll be happy to share my results with anyone on MT who thinks it might be helpful, or who is simply geeky enough to be interested. I might even be talked into doing some minor customization to make it better fit your needs, as someday I might actually decide to polish it enough to offer it to other schools.

While I'm building this out, I'd like to hear from other instructors about what you'd like in software for your program:
  • What are the "must have" features and functions?
  • What are some features that would be cool, though you could live without them?
  • If you've used any software already, what parts of that software did you really think were done right?
  • And what parts really bugged you?
 
Emergency contact information. Allergies and other medical alert issues. Email list for mass contacts, possibly social media information for those who wish to partake. Promotion dates.
 
Emergency contact information. Allergies and other medical alert issues. Email list for mass contacts, possibly social media information for those who wish to partake. Promotion dates.
See, this is why I ask these things, Bill. It literally never occurred to me to include any medical information. Thanks!
 
I don't know how relevant this would be to you, as iirc most of your students are there for specific purposes, but possibly find a way to include students motivations to train. That's something that could be determined pretty easily during the first lesson, and as students quit/join the general classes reasons for training may change (I am assuming most instructors tailor what they teach around helping students achieve what they came to achieve, or are willing to inform them early on if that isn't the case).
 
I don't know how relevant this would be to you, as iirc most of your students are there for specific purposes, but possibly find a way to include students motivations to train. That's something that could be determined pretty easily during the first lesson, and as students quit/join the general classes reasons for training may change (I am assuming most instructors tailor what they teach around helping students achieve what they came to achieve, or are willing to inform them early on if that isn't the case).
I've included a "focus notes" field in the student records to store things like this. I'll be interested in seeing how I use it. In my experience working with system upgrades, new fields are often the result of what's stored in notes fields like that.
 
Maybe a performance tracker. E.g after each test note down how they did like if one guy blasted through everything and looked amazing or one guy scrapped through so you know what things to work on with them and don't forget. Or just note taking after each class so you can track their improvement before a test to see how better they are so to see if they're ready to test
 
Maybe a performance tracker. E.g after each test note down how they did like if one guy blasted through everything and looked amazing or one guy scrapped through so you know what things to work on with them and don't forget. Or just note taking after each class so you can track their improvement before a test to see how better they are so to see if they're ready to test
The test notes I've built in (both for entire tests, and for segments of tests when the test is longer). I've been debating about keeping just random notes in a separate table to allow instructors to add whatever they feel they need at any point. In fact, if I do that, I wouldn't need as big a field for the "focus notes".
 
Curious if you have any experience with PHP. There's an idea that I've had for a while that I just haven't gotten around to it.

My PHP is pretty sketchy and it would be near necessity.
 
Curious if you have any experience with PHP. There's an idea that I've had for a while that I just haven't gotten around to it.

My PHP is pretty sketchy and it would be near necessity.
My PHP is probably worse than yours. I'd be interested in hearing the idea, though, as I occasionally have access to some PHP-proficient folks.
 
That's too bad, I could use a partner in crime. Years ago, I build a Joomla site to run a company. It occurred to me that a school could have a public website and pages that were accessible with various permissions. All students could have access to some sections, closed door students more sections and you could keep your notes in places that only you or you and whoever helps you have access to.

You could also have things like calendars and financial records, plus shared email boxes for people inquiring about the club. As people progressed, you could just grant more permissions. My club tends to banter quite a bit in email, all of that could be in discussion threads like this one, so that people joining later could see previous discussions.

The backend of all of these things is MySQL, so you've got a fully functional relational db for whatever you are doing in Access, but in my experience, it's a lot more stable.

It was tough for me to get setup because my PHP is pretty bad and while I'm good with HTML/CSS it breaks it up in ways that I have trouble following it. Once it was working though, it was amazing and any of my partners could manage it without ever looking at code. Drupal and Wordpress would he similar options. I think that Drupal is more powerful, but requires more PHP prowess and Wordpress is less functional, but requires less PHP.

On my list, but what I really need is a co-conspirator.
 
That's too bad, I could use a partner in crime. Years ago, I build a Joomla site to run a company. It occurred to me that a school could have a public website and pages that were accessible with various permissions. All students could have access to some sections, closed door students more sections and you could keep your notes in places that only you or you and whoever helps you have access to.

You could also have things like calendars and financial records, plus shared email boxes for people inquiring about the club. As people progressed, you could just grant more permissions. My club tends to banter quite a bit in email, all of that could be in discussion threads like this one, so that people joining later could see previous discussions.

The backend of all of these things is MySQL, so you've got a fully functional relational db for whatever you are doing in Access, but in my experience, it's a lot more stable.

It was tough for me to get setup because my PHP is pretty bad and while I'm good with HTML/CSS it breaks it up in ways that I have trouble following it. Once it was working though, it was amazing and any of my partners could manage it without ever looking at code. Drupal and Wordpress would he similar options. I think that Drupal is more powerful, but requires more PHP prowess and Wordpress is less functional, but requires less PHP.

On my list, but what I really need is a co-conspirator.

Couldn't most of that be accomplished with a good membership plugin? If it was worth it, it could even be set up as a paid membership, letting students pay their school fees right there. Of course, a custom plugin for MA schools would make execution easier.

That said, let me reach out to some folks I know. If any are competent in PHP and have some time for a project, I'll try to hook you up.


Gerry Seymour
Shojin-Ryu, Nihon Goshin Aikido
 
Okay, let me start by admitting that I'm probably doing more work than I need to.

I don't think it's more work, if it fits your needs and makes you do less work in the long run. I do have my doubts about Access as being a platform though, it's a little limiting and doesn't scale very well.

There are a lot of options out there though (Rainmaker, Zen Planner, Mind Body, Perfect Mind, MyVolo, etc.) that are designed specifically for martial arts schools, all of which I think will give you more capabilities then something done in Access.

That said, no software is perfect, and after trying a bunch and finding there where things I really wanted that no one offered I did our own software as well.

While I'm building this out, I'd like to hear from other instructors about what you'd like in software for your program:
  • What are the "must have" features and functions?
  • What are some features that would be cool, though you could live without them?
  • If you've used any software already, what parts of that software did you really think were done right?
  • And what parts really bugged you?

- Attendance, ideally something people can check themselves in for.
- POS needs to be there
- Automated billing needs to be there, or some other solution working in parallel
- Email marketing. Send emails to a schedule when a email is entered, automated email on Birthdays, if someone misses a week, is behind on payments, etc.
- Tracking promotions and rank requirements
- Basic reporting - How many leads, new members, retention stats, gross sales, active member counts, attendance stats, etc.

I'd say those are the absolute must haves for a school software.
 
I don't think it's more work, if it fits your needs and makes you do less work in the long run. I do have my doubts about Access as being a platform though, it's a little limiting and doesn't scale very well.

I'm not sure what limitations you're thinking of. Access can handle millions of records (far more than any school would ever need), and the tasks are all fairly routine database tasks. It wouldn't work for a multi-school business, and I'm not sure I'd ever try to scale to that. If I did, I'd move the back end to SQL Server, or maybe move it all to a web-based platform. The biggest limitation with Access is the limited ability to work from multiple locations. There are some ways around that, and once I've gotten this working in the first version, I'll be looking into those options for future work.

There are a lot of options out there though (Rainmaker, Zen Planner, Mind Body, Perfect Mind, MyVolo, etc.) that are designed specifically for martial arts schools, all of which I think will give you more capabilities then something done in Access.

The ones I've looked at didn't handle the structure I needed for tracking student passage through the curriculum (being able to track what techniques have been taught, etc.) nor handle the fee process (most assume a standard fee for all students, minus possible discounts). Most were centered around the business process, rather than the teaching process. I want to reverse that, so it's easier for instructors to deal with the business. With Access, I can fully customize, including adding my own custom properties, maintenance code, etc. The data structure is a beast, but that's usually true of any moderately-complex database.

That said, no software is perfect, and after trying a bunch and finding there where things I really wanted that no one offered I did our own software as well.
True enough, and I'll probably end up leaving out some of what I wanted, at least in the short run, even with Access. Only so much time in the day.

- Attendance, ideally something people can check themselves in for.
- POS needs to be there
- Automated billing needs to be there, or some other solution working in parallel
- Email marketing. Send emails to a schedule when a email is entered, automated email on Birthdays, if someone misses a week, is behind on payments, etc.
- Tracking promotions and rank requirements
- Basic reporting - How many leads, new members, retention stats, gross sales, active member counts, attendance stats, etc.

I'd say those are the absolute must haves for a school software.
  • You've had the same thought as me on attendance. I don't have a good place to set up self-check right now, but I definitely want the capability.
  • POS is something I'm thinking about. I'm sure I could work with a payment gateway via an API, but I'm wondering if it's worth it. I currently use Square Register, and will probably look into their API to see if it's possible to set up a feed between the Access DB and Register. That seems the easiest answer. Once I've done that, I can probably repeat for PayPal and PayAnywhere, assuming all three have API's that allow everything I'd need. At some point, I'd need to look at other processors because those three are really only a good fit for small schools (because of their fee structure).
  • Hadn't thought of the email pieces. That's easy enough - good idea!
  • Promotions, requirements, and testing turned out to be more complex than I'd thought, but I've built that in. I still need to work out the logic for alerts when a student has met all requirements, or has received all necessary curriculum for the next level.
  • Much of the tracking/reporting will probably end up in a later version. My program is too small for me to need much structure around that (max I could even have is about 20 students), but that would definitely be more important to a larger program.
 
I'm not sure what limitations you're thinking of.

Scalability is one, maybe you intend to keep small and if so that's not a issue.

More importantly for me would be web access. If the goal is a instructor based app then I would say tablet access and use would be priority. I'd also think the ability for students to access pieces from home would be a huge benefit. For us we run the floor off a iPad, we can mark curriculum requirements, pull up a list with photos of who is signed in class at the moment and all the students can access their profile from home, which gives them all their receipts, they can see their attendance records, promotion requirements, what they still need to work on and has links to videos of those things. They get a list of upcoming links and can register for them online through the app.
 
Scalability is one, maybe you intend to keep small and if so that's not a issue.

More importantly for me would be web access. If the goal is a instructor based app then I would say tablet access and use would be priority. I'd also think the ability for students to access pieces from home would be a huge benefit. For us we run the floor off a iPad, we can mark curriculum requirements, pull up a list with photos of who is signed in class at the moment and all the students can access their profile from home, which gives them all their receipts, they can see their attendance records, promotion requirements, what they still need to work on and has links to videos of those things. They get a list of upcoming links and can register for them online through the app.
Ah, I see where you're thinking. What I'm thinking about wouldn't have a student interface, except for the self-check-in for attendance and perhaps a payment interface. Since I'm hoping to run an interface to a payment gateway, the receipts would all come out of that (most offer an e-mail option). I'm working on a member section of the website that would provide all the rest (except their current progress, I prefer students to have to track that, themselves). This is meant to be the instructor's management software, not the whole working of the school. I would assume that some of the more expensive options out there (which I didn't bother to look at, because of their price) would provide all that you describe, but aren't really cost-effective for smaller programs.

And you're right, creating anything robust with a web interface via Access is problematic. They've added some functionality in that area, but I haven't looked into it, and can't see why I would. There are better platforms for handling that type of program.

The iPad thing is actually something I'm looking at. There are iPad apps that will allow you to interface with Access forms, and some have pretty good reviews. I assume I'd have to make a second set of those forms to customize them to that interface, but I'm hoping for something there. That said, a Windows tablet (or even a convertible laptop, like the Dell I have) would be another option, and might suit me just as well. The iPad had the advantage of being what people would more likely want AND it can use the Square Register (or PayPal Here or PayAnywhere) app.

Thanks for the well-considered input, Andrew! I think much better when I have people challenging my approach and ideas, and presenting ideas and alternatives.
 
That's too bad, I could use a partner in crime. Years ago, I build a Joomla site to run a company. It occurred to me that a school could have a public website and pages that were accessible with various permissions. All students could have access to some sections, closed door students more sections and you could keep your notes in places that only you or you and whoever helps you have access to.

You could also have things like calendars and financial records, plus shared email boxes for people inquiring about the club. As people progressed, you could just grant more permissions. My club tends to banter quite a bit in email, all of that could be in discussion threads like this one, so that people joining later could see previous discussions.

The backend of all of these things is MySQL, so you've got a fully functional relational db for whatever you are doing in Access, but in my experience, it's a lot more stable.

It was tough for me to get setup because my PHP is pretty bad and while I'm good with HTML/CSS it breaks it up in ways that I have trouble following it. Once it was working though, it was amazing and any of my partners could manage it without ever looking at code. Drupal and Wordpress would he similar options. I think that Drupal is more powerful, but requires more PHP prowess and Wordpress is less functional, but requires less PHP.

On my list, but what I really need is a co-conspirator.
Joomla works better these days than the earlier days and the extensions for Joomla are much better and more details. Many of the vendors of the extension will customize the extension for free or for a small fee if the extension doesn't handle a required task. When I design websites for businesses I prefer Joomla simply because it's the better compromise between user friendliness of WordPress and functionality of Drupal. The extensions for Joomla are more business oriented than the plugins for WordPress so 95% of the time there will be an extension that fits multiple requirements such as what the OP mentioned.
 
Basic reporting - How many leads, new members, retention stats, gross sales, active member counts, attendance stats, etc.
For this I have found that the best reporting that you'll get is one in which you can export into Excel and create a Pivot Table from. Everything else is just going to be limited on how the data is viewed.

There are a lot of options out there though (Rainmaker, Zen Planner, Mind Body, Perfect Mind, MyVolo, etc.)
I would express caution about using services like this. These services aren't bad, they are just expensive and you never own the service. So in that light make sure that the cost of the service can be supported by the membership registration. I would go even as far as to say, that if you don't have 20 regular members then software like that isn't going to get a big return. I own my membership software so there's no monthly cost to keep it. I try to keep as much money from leaving the business as possible.

Most were centered around the business process, rather than the teaching process.
This is going to be the case for most software. A Learning Management System may be able to manage this process for you as it is already built with the purpose of managing what is learn and what is taught. The only thing you would need to do is change the subject matter from education to martial arts.

Here are some examples of learning management systems and what they are able to do. it may help you with not reinventing the wheel until necessary and may be useful as a blueprint to help you with your Access database.
LearnPress - WordPress LMS Plugin — WordPress Plugins

Joomla Learning Management System LMS eLearning
https://www.king-products.net/
The compromise that you'll have to make, which is a good one, is to come to a point where you will design something that does a few things really well and not try to design something that does everything. The "one size fits all unicorn" has impaled many people
violent_toys3.jpg

Then it'll throw you down the rabbit hole, where this guy will make your Project a living nightmare.
91081982d8eed3dd64a0ad205bf08872.jpg
 
For this I have found that the best reporting that you'll get is one in which you can export into Excel and create a Pivot Table from. Everything else is just going to be limited on how the data is viewed.
Nothing beats a good pivot table.

I would express caution about using services like this. These services aren't bad, they are just expensive and you never own the service. So in that light make sure that the cost of the service can be supported by the membership registration. I would go even as far as to say, that if you don't have 20 regular members then software like that isn't going to get a big return. I own my membership software so there's no monthly cost to keep it. I try to keep as much money from leaving the business as possible.
This is one of the concerns for a smaller program. If someone is running 3 schools, those SAS programs are probably a good answer, so long as they have the ability to download the data should they ever decide to change platforms.

This is going to be the case for most software. A Learning Management System may be able to manage this process for you as it is already built with the purpose of managing what is learn and what is taught. The only thing you would need to do is change the subject matter from education to martial arts.


Here are some examples of learning management systems and what they are able to do. it may help you with not reinventing the wheel until necessary and may be useful as a blueprint to help you with your Access database.
LearnPress - WordPress LMS Plugin — WordPress Plugins

Joomla Learning Management System LMS eLearning
That's an interesting thought, JGW. Off the top of my head, I can see how that might handle qualification/certification, attendance, and much else. It would certainly get closer to what I'd want than any of the low-end MA software I've looked at. I wonder if any of them could reasonably handle the organization of smaller details, like tracking individual techniques by student (something I've found helps when planning a class). That ability is what drove me away from some of the more promising mid-range offerings. Well, that and the fact that I couldn't easily assign individuals different fee levels and change them globally. I'll have to see what's available with a trial period or really low cost. I'm thinking I might actually have something available from my hosting service, too.

The compromise that you'll have to make, which is a good one, is to come to a point where you will design something that does a few things really well and not try to design something that does everything. The "one size fits all unicorn" has impaled many people
violent_toys3.jpg

Then it'll throw you down the rabbit hole, where this guy will make your Project a living nightmare.
91081982d8eed3dd64a0ad205bf08872.jpg

I'm nearly certain some of what I'm planning will be left for later (which may become never - like the payment gateway), but in building this first cut, I'll figure out what I really need the flow to look like. My "need to have" list includes some things I don't think I'll find in one place (individual pricing with global control, attendance tracking, promotion/testing tracking, tracking progress at the technique level). If I ditch some of the other pieces along the way, so be it. Those are the parts I'm focusing on in the first version. Once I have that much, I can start using it and decide if I really need the other parts, and can also test out tablet-based data entry solutions.

In the end, if I can make something that's adaptable enough to serve other small programs, I'll offer it out there to them. If not, I'll at least have had the fun of building something in Access again.
 
Nice to see your response, Jow Ga.

If you can get Joomla stood up, configured, and extended then you're in great shape, but this is where the PHP comes in. Literally anything is possible with MySQL and PHP from there, but you either need to have or aquire those skills or you need help from someone who has them.
 
so long as they have the ability to download the data should they ever decide to change platforms.
So true. This is where many of those companies give people the "gotcha" moment. 3 years with a company and the customer wants to go to a cheaper service or a better service with another company only to find out that they can't download the data in a format that can be used in another system.

I wonder if any of them could reasonably handle the organization of smaller details, like tracking individual techniques by student (something I've found helps when planning a class). That ability is what drove me away from some of the more promising mid-range offerings.
If the LMS has a "path to certification" where a student has to pass one course (group of skill sets, techniques, belt). My guess is that it should be possible to track the individual techniques by students. It may look something like
Lesson #1(Chapter 1):
  • technique 1 (test or satisfactory approval)
  • technique 2 (must past technique 1 test before technique 2 is available, or not)
  • technique 3
Once the techniques are done to your liking then they can get access to Lesson #2. The other option would be to have Lesson 1 without any technique requirements, but the techniques won't be marked as complete until the student is able to to it. That way they student can still move forward with the understanding that there are some previous techniques that need to be addressed. This would allow students to learn techniques at a different pace, some techniques I do better than others. For me some basic techniques are more difficult than some advance techniques. Sometimes I can do a technique better on my non-dominant side better than I can do on my dominant side.

Well, that and the fact that I couldn't easily assign individuals different fee levels and change them globally. I'll have to see what's available with a trial period or really low cost. I'm thinking I might actually have something available from my hosting service, too.
A good membership plugin will allow you to do this. My guess is that you'll end up with Access doing somethings and a plugin will do something different. I can see where Access will be good for dealing with dealing with some of the membership aspects, but then be a nightmare for payment gateways, because at that point, it becomes a security of data issue especially if they are paying with credit cards. I do both offline and online payments. Offline security = me not getting mugged on the way to may car. Online security = PayPal can deal with that. This way if something goes bad with the online transaction, then PayPal has to deal with the legal issues related to that transaction.

if I can make something that's adaptable enough to serve other small programs, I'll offer it out there to them.
I'll give you some insight on this from a perspective of working with registrations in that past for government organizations.
 
Back
Top