Recommended Editor and Git settings for Web Development

I have posted this information elsewhere, but wanted to consolidate this info in a single place for future reference. I recommend the following settings for git and Visual Studio Code for web development, especially in group projects. These settings will help keep code consistent and reduce git problems when working across multiple platforms, including Windows and MacOS development and HFC's Linux web servers.

Adding web pages to Symfony projects

When developing a complete Content Management System (CMS), the content for web pages is normally stored in the database. However, for our CIS-294 projects, we are taking a more hybrid approach where content is built into the Twig templates, with dynamic information added as needed.

This is covered somewhat in Part 4 of my TV Watchlist tutorial series, but this tutorial provides a simple approach for generating multiple different pages in your CIS-294 websites.

GitLab pipeline automated testing for CIS-294 projects

Starting with the Fall 2022 Semester, CIS-294 web projects now include automated testing for basic security and code quality. These tests run every time commits are pushed to the website git repository, and we will not merge changes to the production branch until all tests pass.

Some of the included tests can be run in your local environment before committing, helping you to check for mistakes and write higher quality code.

Build a TV watch list in Symfony

I have created a new YouTube series on[Building a TV watch list in Symfony. This six-part series demonstrates the basics of building a Symfony web project to store and display items in a TV watch list. This starter project is not feature complete, but demonstrates the principles needed to get started with Symfony, Twig templates, and the Easy Admin bundle.

Creating a service in Symfony

When writing Symfony applications, you may find that you need to reuse some of your code over and over. A common example of this would be when writing separate controllers to manage different entity types in a REST API, where you need to authenticate the authorization header token for each request. Rather than including this method in each controller, this reusable code can be moved to a service which can be injected into all of your controllers as a dependency. With Symfony's autowiring enabled, adding a service is a quick and easy solution to avoid repeating code.

Jacob Rockowitz: Good Project Leadership

Drupal developer Jacob Rockowitz recently posted a blog series on Good Drupal Leadership. While this series does mention some things specific to Drupal and the Drupal community, it's actually an excellent general overview for any large software implementation project, including the types of group projects found in CIS-294. I highly recommend reading Jacob's series to get an overview of what you'll encounter during your semester in HFC's Software Engineering class. The posts are short and should only require 15-20 minutes to read the entire series.

Using JWT for API authorization

It's important to make sure that all REST API traffic is properly secured, but it's not practical to force applications to provide login credentials every time. Instead the API should return a reusable token during login, then the application should verify this token in the Authorization header for every request. JSON Web Tokens can be a good tool to satisfy this need.

Symfony security setup

The Symfony Security documentation page provides detailed information about all of the topics below. This page will be a guide featuring the specific needs of our CIS-294 Software Engineering projects. Please note that this information was updated in Winter 2026 and corresponds to the Symfony 8.0 release. These notes will cover creating a user entity, adding a user via phpMyAdmin, and getting started with available authentication options.

Accessibility Resources

Accessibility is not a black and white checklist, but rather a mindset of inclusion that guides how we create and measure the effectiveness of content for all users. HFC has many diverse populations, including English Learners (ELL/ESL), people with varying ability/disability and reading level, people who use assistive technologies, and people using phones/mobile devices to access our websites, and our accessibility practices create a better experience for everyone.

Visit the HFC Accessibility SharePoint site for the latest information.

What is an API?

As part of this project, we'll be creating an API, or two: a database API to handle all database functionality, and a RESTful API to allow the desktop application(s) to connect to the Database API over the web. If you're not super familiar with APIs, these short videos provide an introduction.