| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
This repo is now fully runnable locally (macOS, Linux, Windows) with no external API calls.
What you get
We use Tomcat 10+ (Jakarta Servlet) and MySQL in Docker for portability. Everything runs on your machine; no cloud accounts needed.
macOS or Linux
Install Java + Tomcat 10 + Docker
Start Tomcat macOS (Homebrew):
Linux/Windows: define Tomcat home
Verify: open http://localhost:8080 (Tomcat welcome page)
Start local MySQL (Docker) and create tables macOS/Linux:
Windows PowerShell:
docker run --name mysql-3308 -e MYSQL_ROOT_PASSWORD='Akash@123' -p 3308:3306 -d mysql:8.0
docker exec -i mysql-3308 mysql -uroot -pAkash@123 @"-" <<'SQL'
CREATE DATABASE IF NOT EXISTS module2;
USE module2;
CREATE TABLE IF NOT EXISTS studentMarks (
rollno INT PRIMARY KEY,
name VARCHAR(255),
section VARCHAR(10),
sub1 INT, sub2 INT, sub3 INT, sub4 INT, sub5 INT, sub6 INT,
lab1 INT, lab2 INT
);
SQLBuild and deploy the Experiment 5 web app macOS/Linux:
Windows PowerShell:
Use the app (in your browser)
That’s it. The app is running entirely locally.
Full-stack (Tomcat + MySQL)
Web-only (no DB)
Console-only (no Tomcat)
All required databases/tables for full-stack modules are auto-created by scripts/mysql_up.sh.
Prereqs: Tomcat running (see quick start step 2) and MySQL bootstrapped (step 3).
macOS/Linux (deploy to Tomcat)
Windows PowerShell
Example (Experiment 4, Lambdas):
mkdir -p "EXPERIMENT 4/bin"
javac -d "EXPERIMENT 4/bin" \
"EXPERIMENT 4/src/lambdaExperession/Student.java" \
"EXPERIMENT 4/src/lambdaExperession/exp4.java"
java -cp "EXPERIMENT 4/bin" lambdaExperession.exp4JDBC console experiments require scripts/mysql_up.sh (creates employee.emp and jdbc_db.student).
Prerequisites
Helper scripts (macOS/Linux)
Helper script (Windows)
Manual build (if you prefer explicit commands)
On macOS with Homebrew Tomcat:
export TOMCAT_LIBEXEC="$(brew --prefix tomcat@10)/libexec"
mkdir -p "EXPERIMENT 5/src/main/webapp/WEB-INF/classes"
cd "EXPERIMENT 5"
find src/main/java -name "*.java" -print0 | xargs -0 javac \
-cp "$TOMCAT_LIBEXEC/lib/servlet-api.jar:src/main/webapp/WEB-INF/lib/mysql-connector-j-8.3.0.jar" \
-d src/main/webapp/WEB-INF/classes
rsync -a src/main/webapp/ "$TOMCAT_LIBEXEC/webapps/exp5/"
cd -On Linux with a downloaded Tomcat:
export CATALINA_HOME=/path/to/apache-tomcat-10.x.x
mkdir -p "EXPERIMENT 5/src/main/webapp/WEB-INF/classes"
cd "EXPERIMENT 5"
find src/main/java -name "*.java" -print0 | xargs -0 javac \
-cp "$CATALINA_HOME/lib/servlet-api.jar:src/main/webapp/WEB-INF/lib/mysql-connector-j-8.3.0.jar" \
-d src/main/webapp/WEB-INF/classes
rsync -a src/main/webapp/ "$CATALINA_HOME/webapps/exp5/"
cd -On Windows PowerShell:
$env:CATALINA_HOME='C:\\path\\to\\apache-tomcat-10.x.x'
New-Item -ItemType Directory -Force -Path 'EXPERIMENT 5\src\main\webapp\WEB-INF\classes' | Out-Null
$sources = Get-ChildItem -Path 'EXPERIMENT 5\src\main\java' -Recurse -Filter *.java | ForEach-Object { $_.FullName }
javac -cp "$env:CATALINA_HOME\lib\servlet-api.jar;EXPERIMENT 5\src\main\webapp\WEB-INF\lib\mysql-connector-j-8.3.0.jar" -d 'EXPERIMENT 5\src\main\webapp\WEB-INF\classes' @sources
robocopy 'EXPERIMENT 5\src\main\webapp' "$env:CATALINA_HOME\webapps\exp5" /EUsing the Calculator demo
Stopping services
Troubleshooting
When you’re done, you can stop everything and clean up your machine. Use the commands for your OS/shell.
macOS (Homebrew) / Linux (bash/zsh)
# 1) Stop Tomcat
brew services stop tomcat@10 2>/dev/null || true
# 2) Remove deployed webapps from Tomcat
# Adjust the list if you deployed a subset
CONTEXTS=(exp5 exp6 exp7 lab5 lab6 lab7 loginform regform calc sreg allcompo)
if command -v brew >/dev/null 2>&1; then
TOMCAT_HOME="$(brew --prefix tomcat@10)/libexec"
else
# For Linux: set CATALINA_HOME earlier, reuse it here
TOMCAT_HOME="${CATALINA_HOME:-/path/to/apache-tomcat-10.x.x}"
fi
for ctx in "${CONTEXTS[@]}"; do
rm -rf "$TOMCAT_HOME/webapps/$ctx"
done
# 3) Stop and remove local MySQL container
docker stop mysql-3308 2>/dev/null || true
docker rm mysql-3308 2>/dev/null || true
# Optional: remove image cache to free space
# docker rmi mysql:8.0 2>/dev/null || true
# Optional: clean compiled classes in this repo (safe; sources remain)
find . -type d -path '*/src/main/webapp/WEB-INF/classes' -exec rm -rf {} +Windows (PowerShell)
# 1) Stop Tomcat (if you run it manually)
# & "$env:CATALINA_HOME\bin\shutdown.bat"
# 2) Remove deployed webapps from Tomcat
$apps = "exp5","exp6","exp7","lab5","lab6","lab7","loginform","regform","calc","sreg","allcompo"
foreach ($a in $apps) {
$p = Join-Path $env:CATALINA_HOME "webapps\$a"
if (Test-Path $p) { Remove-Item -Recurse -Force $p }
}
# 3) Stop and remove local MySQL container
docker stop mysql-3308 2>$null | Out-Null
docker rm mysql-3308 2>$null | Out-Null
# Optional: remove image cache to free space
# docker rmi mysql:8.0 2>$null | Out-Null
# Optional: clean compiled classes in this repo (safe)
Get-ChildItem -Recurse -Directory -Filter classes | Where-Object { $_.FullName -like '*src\main\webapp\WEB-INF\classes' } | Remove-Item -Recurse -ForceNotes
Enjoy exploring and extending!
| Back | FazBrowse Home | New Git URL |