A small LAMP stack practice project built with PHP, MySQL, and Apache.
This app allows a user to:
- add a student note
- save the note to a MySQL database
- view saved notes on the main page
The project was built as a pre-placement practice app to strengthen backend fundamentals and understand the full flow from form input to database storage and browser output.
The goal of this project is to practice the core LAMP flow:
- Apache serves the PHP files
- PHP handles form input and server-side logic
- MySQL stores the student notes
- the app fetches saved notes and displays them in the browser
This project is intentionally small so the full system can be understood end to end.
- Add a student note using a form
- Save note data to MySQL
- View all saved notes on the index page
- Store note timestamps automatically
- Reuse database connection logic through a config file
- PHP
- MySQL
- Apache
- HTML
- Linux
student-notes-tracker/
├── README.md
├── notes/
│ ├── project-notes.md
│ └── setup-notes.md
├── screenshots/
├── sql/
│ └── schema.sql
└── app/
├── index.php
├── add-note.php
├── save-note.php
└── config.php
student_notes_tracker
student_notes
idstudent_namenote_textstatuscreated_at
- Open add-note.php
- Fill in the form
- Submit the form to save-note.php
- save-note.php receives the POST data
- save-note.php uses config.php to connect to MySQL
- The note is inserted into the student_notes table
- The user is redirected to index.php
- index.php fetches all saved notes
- The notes are displayed in the browser
Run the SQL in sql/schema.sql using MySQL Workbench or the MySQL CLI.
Update app/config.php with your MySQL connection details.
Make sure Apache is running and the project is being served through http://localhost/...
Example local path:
http://localhost/student-notes-tracker/app/index.php
Main list page that displays all saved notes.
Form page for adding a new note.
Processes the form submission and saves the note to MySQL.
Contains the MySQL connection logic.
This version includes:
- one database
- one table
- one form page
- one save flow
- one list page
This version does not include:
- authentication
- edit/delete functionality
- advanced styling
- multiple tables
- framework use
This project was used to practice:
- PHP basics
- HTML forms
- POST request handling
- MySQL schema design
- PHP to MySQL connection
- insert queries
- select queries
- displaying database data
- understanding full request flow in a small LAMP app
Screenshots captured for this project:
01-mysql-workbench-local-connection.png- local MySQL Workbench connection02-schema-sql-script.png- schema SQL prepared for execution03-student-notes-table-view.png-student_notestable visible in MySQL Workbench04-add-note-form-page.png- add note form rendered in the browser05-note-visible-on-index-page.png- saved note displayed on the index page06-student-notes-table-view.png- inserted note visible in the database table
Possible future upgrades:
- make status a dropdown
- add filtering by student name or status
- add edit/delete features
- improve styling
- move DB credentials into .env
- use a dedicated DB user instead of root
Current status: core version complete
Completed:
- database schema created
- MySQL connection configured
- PHP served through Apache
- add note form built
- save note flow working
- notes displayed on the index page
The project can now:
- add a note through the form
- save the note to MySQL
- display the saved note on the list page
That confirms the main student notes tracker flow is working end to end.
This project was used to practice:
- PHP form handling
- Apache-served local development
- MySQL schema creation
- PHP to MySQL connection
- end-to-end request -> app -> database -> browser flow