Jump to content

How do I make a scheduling system?


Recommended Posts

I am not sure if this is the right place to post it, but I have a query. You see, I am studying at a private coaching center, and because of the pandemic, they are providing online classes through Microsoft Teams.

We are only allowed to attend the classes that are assigned to our batch. Those classes are scheduled from 6:30 to 8:30 pm. However, I have discovered a workaround that lets me join  classes of other batches too! I have not informed the administration of this exploit, and I have not told any of my friends either. Why would I give up an advantage like this? 

Now, there are  4  two-hour 'Time Slots' in which classes take place. They are [7:00 am to 9:00 am] [11:45 am to 1:45 pm] [2 pm to 4 pm] and [6:30 pm to 8:30 pm]. My batch have been assigned the last time slot, thats where all my classes happen. But i want to attend all important classes from 7 am to 8:30 pm.

And this is where my problems begin. You see, there are a lot of different subjects that are being taught, some more important and some less so. I wished there was a system that could keep track of the time table of a particular week's classes of 25 batches, choose the class that is the most important and remind me of it.

I was thinking of a ratings-based approach to help decide the importance of a class. For ex: Finance would be rated a 5/5 (very important!) and geography would be rated a 2/5. If at a [2 pm to 4 pm]  time slot these two subjects clash, then the system would suggest me Finance.  I hope my explanation is making sense..

Could you guys please help me out with designing a time table program or something?

Edited by Selective Genius
Link to comment
Share on other sites

Back then I was an university they used an program to schedule classes. It took into account teachers and rooms mostly, some classes needed computer labs or other labs. 
Others was lectures for lots of students. 
Well the joke was that the program messed up every time and they spent a week fixing stuff :) 

Anyway, your main problem is that you might miss out some classes as you say geography clashes at one point but the second lecture might fit.
And its no issue taking extra classes as long as you don't pushed other out, you main problem is that if you are not registered you get no credit for the class and can not do an exam for it I think. 
At least for higher education you tend to be free to select as many classes as you manage, main problem is overwork especially for the exam surge. 

Link to comment
Share on other sites

12 hours ago, Selective Genius said:

And this is where my problems begin. You see, there are a lot of different subjects that are being taught, some more important and some less so. I wished there was a system that could keep track of the time table of a particular week's classes of 25 batches, choose the class that is the most important and remind me of it.

I was thinking of a ratings-based approach to help decide the importance of a class. For ex: Finance would be rated a 5/5 (very important!) and geography would be rated a 2/5. If at a [2 pm to 4 pm]  time slot these two subjects clash, then the system would suggest me Finance.  I hope my explanation is making sense..

Could you guys please help me out with designing a time table program or something?

 

Hello, I'm a software engineer, its somewhat unexpected to see a question about building an application on this forum not gonna lie. I'm not some master architect or anything, but I have a few ideas I'd throw out.

So from what you said the general idea of what you want to build sounds like an application that suggests what classes for you to take for a given batch of classes that are presented in some other application. (web app?)

The short practical answer: build nothing and just manually go through the batch and pick what you think is the most important.

This is the long answer:

Lets assume you are the greatest developer on Earth and can build anything to do anything. Awesome, all technical details don't matter and now you just need to solve your problems with your magic code fingers. This application needs to know whats important, but inherently doesn't unless you tell it. The issue with boils down to machines are dumb, so if there was a class offered called say "Basic Orbital Mechanics with Elon Musk and Scott Manley, featuring fresh doughnuts" anyone in the right mind would pick that class, except your app, which unless it was specifically told to categorize such stuff it wouldn't alert you, it would tell you about the Finance class at 2:30pm instead. Sure you might manually notice that class and sign up, ignoring the recommendation of your app, but you can kind of see the gap in what this recommendation app could do.

There really isn't an easy way around this unless there is a clear, straight forward categorization system for all possible classes that you can rely on, so your suggestions know what is available and you have already rated all of them. So if classes are always categorized directly as finance, then yes you could "sort" them based on this priority you set. This is more a sorting problem that any "greatest developer on Earth" can handle multiple ways. 

If this was a large scale problem, you could use advance stuff like machine learning to build an algorithm to create suggestions for you based on existing trends, but since this is just for you, you can't take that route and need to more or less tell your app what to care about and rate manually.

So now lets remove the idea your the greatest developer on Earth and focus on the technical challenges. Assuming you figured out the edge cases for your app, you should understand how the app would function for a list of classes without considering how to do this with code. This is where you have multiple options depending on how the application your currently using works. I'm not familiar with how MS Teams works, or how what your using to handle signups, but lets assume everything is just in a spreadsheet. As such a structure is very common, and a lot of people are familiar with it. 

Your app would have to go thru this sheet, get all the "rows" that represents all the classes available, determine which are the most important, and then filter out conflicting times. Again this isn't too difficult by itself, but getting it to such clean structure is where I assume the difficulty would be. If you have to click on multiple pages to get the data that may or may not be categorized clearly, the technical challenges become more and more, and thus it will take more and more time and effort to build it. Its the "get me the data to make a decision" part that is hard, possibly really really hard, and then you still need to have your app understand the data well enough to make the right decisions, which also is hard and not perfect.

The technical challenges to get the data to filter+sort though is the most questionable, and possibly the most work, and this assumes your fine with all the gaps such a solution would produce. Which is why I don't think its really worth trying to build anything to solve this problem.

 

If you have no idea how to code, learning to code, learning this problem, solving this problem, and then building a solution would suck up vastly more time, and be vastly more prone to errors than just manually doing it. Yea its boring, and you could always automate some parts of the process (macros?), or there might be easier ways to lessen that "get me the data" part and you could automate this whole thing, but I kinda doubt it from how you describe the setup. If all the class schedules were in a nice clean list format, things get much easier, but if not its definitely not worth it

Now if you have no idea how to code and want to learn, while also trying to save yourself time, it would take some time and a good amount of work even for "the greatest developer in the world" but would be a very interesting project to get started. Just worth keeping in mind this sort of problem is not easy to automate, very few cases are.

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...