Trying to build a scheduling app, What should I learn?

Viewed 94

I'm trying to make an app that will automatically create a schedule for staff. Input data would include:

  1. Dates, times and locations where a shifts will need to be filled.
  2. Availability (just dates and times) and possibly preferences of staff for dates/times/locations (not necessary but ideal).
  3. If possible this would spit out two sheets, the first showing which staff will fill which shifts and another showing staff as individual rows with their shifts listed so it is easy for them to find what they have been assigned.

I'm assuming this would require a database to hold the information but I'm not sure whether a program can keep this info in something like .csv file or .json database.

My first thought was to just use something like Python. After looking a bit more I thought possibly building a web page which connects to a database might be better, I found this and thought it might be what I'm looking for (https://www.freecodecamp.org/news/learn-the-farm-stack-fastapi-reactjs-mongodb/).

At this early stage I was hoping someone could offer some advice before I spend the next 10-50 hours learning basics of a language. Personally I would value making a web app over a natively run app but it isn't a deal breaker.

Kind regards, Ben.

2 Answers

I'm afraid this is off-topic here, and might be better posted on codereview.stackexchange.com …
You don't need to learn MongoDB, FastAPI, ReactJS etc. just to make a Web interface for a database. Standard HTML + JS + CSS is enough for the Web part (frontend), and Python's standard library for the server side (backend). You can set up a server that is able to execute Python scripts using the http.server module. Here are some guides to help you getting started with these languages:

  • HTML for beginners - HTML is the "skeleton" of a web page
  • A complete beginners guide to JavaScript - JavaScript allows you to make the web page interactive
  • CSS Beginner turorial - CSS allows you to change the appearance of your website - this is not mandatory for this kind of project, and should be the last thing you learn. Concentrate on the others.
  • Python beginners guide - You need Python to write a script that takes the data entered in your website, calculates the schedule and stores it in the database.

Of course you can use any programming language, but Python is very easy and straightforward compared to others. Also it is present or easy to install on any platform, and doesn't require any compilation.

For this kind of data, you probably will not need a database; a simple text, CSV or JSON file will do, I think.

I'm pretty sure there are many programming language and respective database can be use. Personally if I want to program a scheduling app, I will use Google appsScript server side javascript. Convenient as I can use the existing google app script api key. Like the google calendar api.

Above is just my own preference and opinion if I were need to create a scheduling app.

Related