I'm looking for the best way to build a simple scheduler that will be able to render a visual calendar of the last 90 days and events that occurred during that span of time.

We will need to store the contents of the calendar in a database. I'm thinking a flat file database (plaintext file) is best since it's not that complex and I don't know MySQL at all and my PHP knowledge is limited. The visual part will be easy since I can use HTML and CSS.

This is for a small business that needs to track employee attendance history for the past 90 days.
We also want to make another calendar in a similar fashion that allows employees to log in from home to check their work schedule for the coming weeks.

I'm asking the community's opinions:
Is PHP a practical choice for building such a tool? Or does anyone know of a better-suited existing solution?

4 Years
Discussion Span
Last Post by James_65

PHP is fine for this, but using a plaintext file for your data would not be advisable (just because you don't have the skillset yet). If you want to build this yourself - it's a pretty trivial build for an experienced php-er - get to grips with MySQL or similar DB engine. Seeing as your users will be 'logging in', you'll certainly need to have considerable security in place, something that a plaintext file probably won't give you.

As szabizs mentions, there are online services available. Hundreds if not thousands of them. Some are free, some like http://www.bookfresh.com/ are paid (that's just an example - I'm in no way associated with them nor have I tried their services).

If this is a critical development for your business, then I suggest a service - imagine the cost of bugs if your staff come to rely on your "beginner's app", if they take the info as "gospel".

I recently devloped a system for science resource manageement in a school. It worked well for 9 months, then inexplicably the dropdown dates widget stopped working. I scanned the code maybe 30-40 times - couldn't see anything wrong with it. It finally came to light that I'd added weekly start dates in the wrong order in MySQL and this played havoc with the code as it was working off week_id values and not the raw dates themselves. So, even if you get it running smoothly, there's no guarantee that it will keep on running and when it comes to a problem and you look at your code, will it be clean enough and DRY enough for you to remember what the hell it was each bit actually did? Sounds ridiculous, but true. Leave a project for 2 weeks and then come back to it - you'll struggle unless it's completely documented and commented, and possibly struggle even if it is.

Don't want to put you off, but if this is critical to your business, you can't afford the luxuries of getting it wrong and not being able to fix it within an acceptable period of time.


I would suggest you to try open source script like this one hosted on github to execute the staff scheduling app that supports employees attendance monitoring for the selected period (1 week, 1 month, last 2month or last 3 months and so on..)

Note that the github hosted project was a utility, written in Python, for scheduling N number of employees with the objective of both satisfying the workers’ scheduling requests and fulfilling the organization’s needs for workers per shift. The app does few good things you will need as a business.

Another option is to develop it in PHP and Mysql on your own. But you must take security issue seriously of you want to develop it in PHP, because writing a simple app in PHP is more volnurable to many attacks. Also I would suggest you to use some Php based frameworks to achieve this. On the other hand, I was also searching for similar alternative from long time, I have tried to build similar apps inspired by the some online service providers. I like eWorksManager's staff scheduling app because of its simplicity and ease of use. I don't know the technical stuff behind this web based app but I would love to do similar app for my business requirements.

Edited by ajahar


Thanks For Sharing these wonderful Tips it really helps me a lot

Edited by James_65

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.