jwinters
Members-
Posts
27 -
Joined
-
Last visited
Reputation
40 ExcellentAbout jwinters

Personal Information
-
Occupation
Teacher
-
Location
Wallingford
Employer (optional)
-
Company Represented
Xronos Scheduling Ltd
-
Thank you. ;-) Feeding a single lesson relocation back into the MIS would depend very much on the capabilities of the MIS. The ones which I've experienced can generally store the school timetable, but they don't usually cope with the idea of minor transient amendments. This is one of the big reasons for Scheduler to exist. It gives you a quick way of finding out where little johnny actually is - not where he would be if this were a normal school day but where he actually is today. It is generally far faster simply to ask Scheduler the question than it is to log in to your MIS and try to get it from there. Users tend to keep it open in a tab in their browser, and it then takes a very few keystrokes to pull up the schedule for any pupil or staff member (or room, or facility, or...)
-
Thanks. The text of the links was right, but the editor seems to have mangled them in each case by adding the first word of the next line to the URL. I think I've fixed them now. Adding an importer for a new MIS is probably not a task for a beginner, but I'd be very interested in cooperating with someone who wanted to do it. The data importer is modular - it has a core section which is MIS-agnostic, then plug-in modules for each individual MIS. You're right - this should all be documented. One of my big ideas for the autumn is to write a lot more documentation. Addition a few hours later - after I've thought about it a bit more. I now think this is a really good idea and so thanks for it again. It isn't actually that big a job to write the extra modules necessary to add import for a different MIS, and it's the sort of thing which really should be documented. I will put it high on my list of upcoming work.
-
(Not sure this is quite the right sub-forum, but it seems the best match.) For the last few years, I've been developing an Open Source (GPL) software package for schools called Scheduler. Its purpose is to provide a unified store recording all the multitudinous things happening from day to day in a given school. At first sight it looks a bit like Google Calendar, but with one major difference - it stores its event information in a structured fashion. Rather than having dozens or hundreds of different calendars as you would with Google Calendar, with Scheduler you have just the one store and then you choose what you want to see from it. It can thus store your entire academic timetable, your extra-curricular activities, homework timetable, invigilation, cover, public calendars (General, Sport, Music, Drama etc.) in one place, making it quick and easy to extract the exact information which you want, and automatically identifying clashes. It can feed personalised schedules to hand-held devices (phones etc.) for both staff and pupils. It can identify exactly who will be missing from your lessons because of a trip. It can facilitate re-location of lessons - either individually or in bulk. Scheduler doesn't aim to replace your MIS. It's solely concerned with schedule information - what is happening, where, when and with whom. It doesn't require double-entry of information - anything relevant which is already in your MIS it can extract automatically and import. It can handle data exported from SchoolBase, WCBS/Pass and iSAMS. It takes all that data and unifies it - making it far easier for staff and pupils to get just the information which they need. It tells them not what would be happening if this were a normal week, but what is actually happening this week - there's often a big difference. It is in use in a number of schools and has been very well received by the staff. "Why didn't this package exist years ago?" is a not uncommon reaction. Anyway - to the point of this post. Development is still ongoing and I'm looking for new ideas. If you can spare the time to take a look at the documentation and/or demo and come up with comments along the line of, "Yes, but why doesn't it do ...?", or "Well, it would be useful if only ..." then I would be most appreciative. Documentation is at https://xronos.uk/ Demonstration system at https://schedulerdemo.xronos.uk/ Entire source is at https://github.com/XronosSchedulingLtd/scheduler The software is free - as in both beer and speech.Thanks in advance for any feedback. John Winters (Incidentally, that initial X in Xronos should be seen as a Greek Chi character - it's pronounced Chronos.)
-
Automatically extracting timetable data from WCBS PASS
jwinters replied to jwinters's topic in MIS Systems
To load into a school calendaring program - https://github.com/XronosSchedulingLtd/scheduler -
Automatically extracting timetable data from WCBS PASS
jwinters replied to jwinters's topic in MIS Systems
So you're saying to go direct to the database, rather than trying to use any extraction facilities provided by the MIS? John -
I'm completely new to WCBS PASS but I'm quite familiar with other school MISs. I'm looking for a way to extract the whole school timetable (not just individual timetables) from PASS in a machine-readable form. This is something which I've done in the past from SchoolBase (using direct database access) and iSAMS (using a combination of the API, and then direct database access where the API was deficient) and I'm now hoping to do the same for a school which uses PASS. Can anyone with PASS experience offer me any pointers about what approach would be best on PASS? I don't want to start off doing it one way, only to find out down the line that there was a much better way to do it. Many thanks
-
Migrating from SchoolBase to iSAMS? Free utility offered.
jwinters replied to jwinters's topic in MIS Systems
Glad it's of use to someone. Feel free to PM me if you need any assistance. Cheers, John -
If you want specifically to develop web applications, then I'd strongly suggest using some sort of framework rather than starting again from scratch. There are quite a few to choose from. Django is one option if you Python appeals to you, or Rails if you like Ruby. HTH John
-
Migrating from SchoolBase to iSAMS? Free utility offered.
jwinters replied to jwinters's topic in MIS Systems
OK - it's there. https://github.com/jhwinters/extractor There is still some school-specific stuff in there, like the mapping of their pupil sanctions in SB to the corresponding areas in iSAMS, but no personal or confidential information. Anyone wanting to use it will need to sort out their own mappings for, for instance, report grades, rewards and sanctions, medical conditions, etc. but the vast bulk of it should work as it stands. -
Migrating from SchoolBase to iSAMS? Free utility offered.
jwinters replied to jwinters's topic in MIS Systems
Good idea. I'll just need to treble-check that there is no school-specific confidential information embedded in the code before I do that. I'm pretty confident there isn't, but... -
Excellent news! Congratulations on your persistence. Cheers, John
-
Honestly, they do... As a bit of general advice, it will help a lot if you get into the habit of getting the formatting right first. It is an active aid to helping you see what is wrong with your program. I'm reminded of advice which I once saw in a "Beginning Programming" book somewhere, which advocated switching off compiler warnings until later in the development process. Said advice was quite insane. I think your problem in the above quoted code is that you are expecting the initTrue = 1; bit to be conditional on the preceding else. At least, you've indented it as if it were. Unfortunately it isn't and will be executed unconditionally, which is probably why the result is surprising you. Cheers, John
-
I think it's time for you to show us your code as it currently stands again. Difficult to give advice without knowing the current state of play. Cheers, John
-
Several people have asked me about this recently, so I might as well mention it publicly. Earlier this year I was involved in migrating a school from using SchoolBase as their MIS to using iSAMS. The school is now up and running on iSAMS and are very happy with it, but the migration process was not without its pain. (I presume this would be true for any migration from A to B, regardless of which A and B are involved.) To move a whole school's data into iSAMS, they expect the school to do the vast majority of the heavy lifting. The old MIS's database must be dumped, interpreted, and then all the re-formatting work needs to be done by the school ready for iSAMS to load it. Effectively you need to build their database table contents for them. To achieve this I wrote a utility (about 10,000 lines of modularised code) which does the job. Having used it and now having no further need of it, the school in question have very generously agreed to put it under an Open Source licence which means it is free for anyone else to use, although obviously it carries no warranty of any kind. You will definitely need to tweak it in the fine detail to suit your particular school's needs, but it should nonetheless save you a serious amount of time. It could potentially do 90% of the work for you. If you are interested, drop me a PM and I can give you access to the source. Please note - this post is not intended to be seen as an endorsement of iSAMS, or of any other MIS. I don't know enough about them to be able to make any kind of informed comparison. I was not involved in this school's decision process - I was simply presented with a job, "We've decided to move all our data from SchoolBase to iSAMS. Please make it happen." So I did. Given the amount of effort involved in writing a utility to do all the necessary work, it seems a shame that it should be used only once. If its functionality happens to align with what you want to do, then I hope it will be of use. Cheers, John
-
Actually, having thought about it a bit further, the logic in that section is quite out of order. (As in, wrongly ordered, not the other meaning.) The test which returns false is being done too soon, meaning you never get far enough to return true. bool won(void) { int counter; counter = 1; // Iterate through numbers, checking them for (row = 0; row < d; row++) { for (col = 0; col < d; col++) { if ((counter == (d*d)) && (board[row][col] == 0)) { return true; } if (board[row][col] != counter) { return false; } counter++; } } return true; } John
