A modern web app for course and career recommendations, featuring a Java Spring Boot backend and a React + TypeScript + Vite frontend.
CourseGuide/
frontend/ # React + TypeScript + Vite frontend
src/
App.tsx
main.tsx
...
public/
index.html
package.json
...
src/main/java/com/courseguide/
App.java # Spring Boot entrypoint
ApiController.java # Main API endpoints
processors/ # Recommendation and data processors
services/ # File storage and related services
dto/ # Data transfer objects (records, enums)
utils/ # Utility classes
...
pom.xml # Maven build file
...
- Java 21+ (backend uses Java 21 features)
- Node.js 18+ and npm (frontend development)
- Maven 3.6+ (backend build)
- MySQL 8.0+ (course database and prerequisite DAG)
- Llama API Server running on http://localhost:8075 (LLM analysis)
- Optional
- Playwright (auto-installed by Maven for web scraping)
-
Compile the backend:
cd CourseGuide mvn clean package -
Run the backend:
java -jar target/courseguide-0.1.0-SNAPSHOT.jar
The backend will start at http://localhost:8080.
-
Install dependencies:
cd CourseGuide/frontend npm install -
Start the development server:
npm run dev
The frontend will be available at http://localhost:5173 and will proxy API requests to the backend.
-
Build for production:
npm run build
- Open http://localhost:5173 for the modern React frontend.
POST /api/recommendations— Simple recommendations (JSON:{ major, gpa })POST /api/upload-progress— Upload a progress PDF (multipart/form-data)POST /api/recommendations/profile— Rich recommendations (JSON profile, can reference uploaded PDF)GET /api/health— Health check endpoint
- Frontend uses ESLint (see
frontend/eslint.config.js) - Prettier or other formatting tools can be added as needed.
