Skip to main content
Class of 2027
Major:
Computer Science
Jai-Jai Ignac is a Computer Science major in the graduating class of 2027. They have been fascinated by Math, Science, and just simple patterns and logic since childhood. Having landed in Computer Science, they quickly fell in love with Database systems. This lead to their Fellowship project, mentored by Dr...
Advisor
Semester:
Summer 2026
Description

Overview of PTE's Structure and Capabilities

This project's goal was the development a PostgreSQL Testing Environment (PTE). The PTE is an application that helps students iterate on their code by supplying automated feedback. It uses Gradescope's software as an API for all student and teacher interaction. It was developed specifically for PostgreSQL, an industry standard Relational Database Management System used in SLU's Database Systems and Security course. 

The testing environment itself takes the form of a Docker container running a testing script. The testing script is written in Python using the Python Unittest module for test definition and a Gradescope library for automatic JSON formatting. All database connections for testing purposes are managed through Psycopg: a Python module designed for PostgreSQL database interactions.

This project was mentored by Dr. Ed Harcourt. As the professor of Database Systems and Security, he wanted a testing environment to help improve his student's learning. As one did not yet exist, Dr. Harcourt proposed this project to develop a testing environment that would meet the needs of the course. 

The PTE supports a wide variety of tests including:

  • The full suite of CRUD
    •     CRUD stands for Create, Read, Update, and Delete. It describes the four major ways data can be manipulated and the four most commonly used when interacting with any database.
  • Database creation and User Management
    •     Database creation covers the other ways data can be manipulated through its organization. User management pertains to the management of user permissions to access and manipulate data.
  • Psycopg script
    •     Psycopg is a Python module that allows database connections and queries to be made to PostgreSQL servers.

These tests cover all instructional content, outside of theory, taught in CS345. It also covers the vast majority of ways students will be expected to interact with databases outside of the classroom.

Repository Link

Final Thoughts on the Fellowship

This summer was overall incredibly productive. Firstly, the project was completed ahead of schedule and exceeded expectations. The PTE gives Dr. Harcourt the tools to test concepts he thought were non-viable previously. Secondly, it showed me what it would be like to work in the software development industry. I can use this experience to guide my future career decisions. Lastly, this project required a large knowledge base of not only programmatic knowledge but also organization and planning skills. This knowledge is not limited to this project and will be widely applicable in the near future. 

I will be continuing this project into my senior year as my SYE where I will be developing my own API for the PTE using the FastAPI Python module. 

United States of America

Share: