The Student Room Group

Help Me!!!

I have just started my NEA computing project, which is basically creating a college timetable creating software. it was all fun and games until i sat down to do some coding. it was at that moment i realised that i (f'd up)
how on earth do you create a timetabling software. i have literally searched it up on the internet and still do not know what on earth is going on. please give me any tips/help on my project. i will really appreciate it. thank you
Are you sure you're ready yet to start coding? Firstly, how far are you in defining your objectives/success criteria? Have you drawn out any UI mock-up pictures and thought about your user-workflow? Have you considered how you'll be testing it? Realistically you need to start out with those otherwise writing the code will be a lot more difficult. The initial planniing stage will make a huge difference to how easy or difficult the rest of your project is.

A good way to start would be to look online for screenshots and videos of other timetable apps to get an idea of the kinds of use-cases which you might want to implement - for example, maybe a teacher adding a lesson to their students' timetables? Or stepping back, what about a user login system? Alternatively, you could try downloading a timetable app and tinkering with it to extract a list of key features that you'd like to replicate in your app.

Don't forget that your objectives should also include handling the unexpected - such as what happens when a user attempts to input the wrong thing, or if they're going to be able to import a file, what happens if the file has the wrong format.

Perhaps there'll be multiple different kinds of users, in which case consider the different roles and permissions you need. Also don't forget to consider your UI navigation and a way to navigate between different screens - again make sure you're focused on an end-user's perspective. Consider drawing some "storyboards" for different features which would take you through step-by-step.

Think carefully about the requirements and the data you need to store - I would assume that a timetable needs to store data about various timetabled events (lessons?) - so have you considered what data you need for those? How about data relating to your users and maybe about the events/lessons themselves? - Again, it's really important to think about this because it will help you draw your UI mock-ups; and indeed the UI mock-ups that you create will help you decide what data you need.

UI Mock-ups are also great for being able to seek feedback from a real person (If you have a real client, or maybe some real users who could look at your UI mockups and suggest changes - e.g. extra data to include or extra features. Perhaps your tutor could have a look and suggest ideas?)

Also, are you thinking of storing your timetable data in a relational (SQL) database? If so, you also need to sit down and think about the relations (tables) and their attributes (columns); Some of this will again, some careful consideration about the data you need to store will help you start to put together a picture of how your program needs to work. Consider drawing out an Entity-Relationship (ER) Model for your data; thinking about Normalisation/3rd Normal Form.

Which programming language and framework are you using? Is this going to be a Desktop GUI app? or are you writing a Website/web app? It could help to begin by starting with some "dumb" UIs - the UIs don't really need to do anything to begin with, but having an app with pages/screens will give you a solid starting point.

Also, consider writing some separate code (I'd recommend starting out with a separate console app) in which you can test out the "glue" which links your programming language to your database on its own.

Consider OO principles about abstraction and encapsulation because this will help you write those individual pieces and then eventually bring them together much later on; since you seem to be doing a data-driven app, you could think about writing some classes which handle your data (There's a common "OO" pattern called Repository pattern which often crops up in apps llke this - Repository pattern is a way of wrapping up database code into its own self-contained classes which are responsible for running SQL code and mapping the results from the database engine into a proper object).

Don't worry yet about trying to build a complete app - it sounds like you're not really ready to build the final system this at this point; it seemsl ike you're very much in the "prototyping" stage, where a better idea would be to try hacking/bodging together a few small/simple apps which achieve different goals for different parts of your system; you may end up with half a dozen different prototypes with bits of code scattered everywhere; this is fine - the purpose of a prototype is to help you break down the unknowns and figure out how to do things in small, isolated "sandbox" apps, to help you learn more about the tools you're using (the language, framework, and to prove whether your ideas are going to work.
(edited 5 years ago)

Quick Reply

Latest

Trending

Trending