Learning documentation
This repo holds the labs and certification projects I've worked through for freeCodeCamp's Relational Databases certification. The course covers Bash scripting and the Linux/Unix command line, PostgreSQL database design, SQL querying, and Git version control. I built five certification projects along the way, applying relational schema design and Bash-driven SQL automation. It's organized as one folder per project, roughly in the order the course introduces them. Starting with designing a database from scratch and ending up with interactive scripts that fill it, query it, and keep track of users on their own.
01. Celestial Bodies Database02. Student Database03. Bike Rental Shop04. World Cup Database05. Salon Appointment Scheduler06. Periodic Table Database07. Number Guessing Game
Each folder contains the files written for that project: the SQL for the schema and queries, and the Bash scripts that drive them.
Designing a PostgreSQL database from nothing: a multi-table schema mapping galaxies, stars, planets, and moons, tied together with primary keys, foreign keys, and constraints.
A Bash script that uses SQL to load information about computer science students into PostgreSQL. The first time the database stopped being something I typed into by hand and became something a script could fill for me.
An interactive Bash program that stores rental information in PostgreSQL. The script handles the conversation with the user, and the database handles the memory. Bash and SQL working together as one small application.
Parsing historical World Cup match data from CSV into a properly structured PostgreSQL database with Bash, then running analytical queries over it. This is where schema design and automation had to work together on a dataset big enough to punish sloppy decisions.
An interactive Bash script backed by a PostgreSQL database for managing customers, services, and appointment bookings. The first project that felt like a real, if tiny, product.
A PostgreSQL database of chemical elements and a Bash script that looks up an element and reports what the database knows about it. Part of the work was making the data itself clean and consistent, not just querying it. I have to admit, this was the hardest to come around.
A Bash game that keeps player statistics in PostgreSQL, so the database remembers who's played before. A small project, but it ties together everything from the course: user input, conditionals, loops, and persistent state.
A few things that carried across the whole repo, not just one folder:
- Relational schema design: Thinking about structure before data, and how keys and constraints keep the data honest.
- SQL querying: Going from "looking up the syntax" to writing queries, including joins across tables, that answer the question I actually have.
- Bash-driven automation: Using shell scripts to insert, query, and interact with a database instead of poking at it by hand in
psql. - The Linux/Unix command line: Working in the terminal instead of a GUI, and getting comfortable there.
- Git and version control: Tracking changes to my work like a project and not a folder of files.
Each folder is a snapshot of where I was at when I wrote it, so earlier folders are rougher than later ones. Which is honestly the most useful part of keeping this repo around, kind of like a landmark of what was.