Case study: Syllabus Generator using PHPDocx Library

  • 09 / 11 / 2012

Since PHPDocX's first release a couple of years ago, the feedback of the community has been pretty good, and many developers tell us about their own experiences with the library. We thought it would be interesting for you to know about these real-world projects so we've started a series of blog posts featuring these PHPDocX case studies.

William Mead is a web developer from Davis, California, who also shares his knowledge teaching to art & design students. I work for a college. As an instructor I have to make syllabi for my classes. The syllabus for each class must contain certain information. Certain pieces of information on the syllabus are generic across all syllabi. Some pieces, such as the course description must match the course description in the school catalog, word for word. Some parts of the syllabus are unique to my particular class and I am allowed to change as I see fit.

A snapshot of the Syllabus Generator app


Here is the challenge that William had to face regarding the syllabi, and why it was so important to do it in a efficient and accurate way: The school's accrediting body came in and found that many syllabi are out of sync with info that is in the catalog. Also there are a great many inconsistencies across syllabi in terms of formatting and content. Creating course syllabi is an arduous task for instructors and the review process is labor intensive for administrators. Plus, there was another format requirement: The final syllabi files must be in Word .doc or .docx format in order to upload to the Learning Management System properly.. And here's where PHPDocX comes into play.


I built a web application that has three levels of users, Administrators, Directors and Instructors. Each of these three types of users enters the appropriate pieces of information, which get stored in a database. To generate a syllabus, the correct pieces are pulled from the database, formatted properly and the PHPDocx library is used to generate Word .docx file with the competed syllabus, ready to upload to the course site in the LMS. The system streamlines the syllabus generation process and removes a lot of potential for errors along the way., he explains. Syllabus Generator project at Github

Three Levels:

The system administrator sets up info for a given term, such as the day it starts, the day it ends and any holidays during the term. He also sets the generic, approved content that will appear on all syllabi for the term, for all classes.
Directors set the information about specific courses, such as the course description, the hours and credits, prerequisites and course learning outcomes that should be the same for the course no matter who is teaching it.
Instructors complete information about when their class will meet, their availability outside class, any special grading policies, weekly breakdown of activities in class and other pertinent information about this particular section of this particular course.


Each term, the administrator sets up the term with dates and generic information. Directors add or edit any changes to specific courses for the term. Instructors can go in and create a syllabus by selecting the course and adding their specific content. When they are done, they can submit the syllabus to the director for approval. The director can review the syllabus and either approve it or send it back to the instructor to make changes. Once the syllabus has been approved, the instructor can then generate the syllabus and download the Word .docx file.

Download a sample DOCX file

Nice Features:

There are a number of additional nice features built into the system. One is that there is a repository on the server of each .php page used by PHPDocx to generate the Word file. This means there will always be a way of going back and retrieving a syllabus for any given course. Secondly, because the Administrator puts in dates for the term, it is easy for instructors to see if their class ever falls on a holiday. Thirdly, the system makes it relatively easy to roll over information from one term to the next for both administrators and for instructors who teach the same courses term after term. Finally, as the system evolves, it will be easy for instructors to see the syllabi used by other instructors and facilitate conversations about teaching and how to approach any given course.

Twitter from @wmmead

It's quite the contrary: thank YOU Bill! :)

If you also want to share your experience with PHPDocx and see your project featured at our blog, please let us know through our contact form