- Project Overview
- Student User Flow
- Technical Implementation
- Data Processing
- Development & Deployment
- Future Features
The Student Journey Visualization System helps students understand their academic progress by creating interactive visualizations of their degree path. Students can upload their degree audit documents and receive a clear, visual representation of their course journey, prerequisites, and completion status.
- Provide students with clear visualization of their academic progress
- Simplify understanding of course prerequisites and relationships
- Enable better course planning and degree progression tracking
- Help identify potential scheduling conflicts or prerequisite issues
- Support different types of degree audit document formats
- Interactive course relationship visualization
- Personal progress tracking
- Easy document upload
- Intuitive dark theme interface
- Course status and grade tracking
- Term/semester organization
- Prerequisites visualization
- Student accesses the system
- Uploads degree audit document (PDF format)
- System processes the document
- Interactive visualization is generated
- Student can explore and interact with their course journey
- Course status indicators (completed, in-progress, planned, not started)
- Grade display
- Credit hour tracking
- Prerequisite relationship mapping
- Term/semester organization
- Interactive zooming and panning
- Course details on hover/click
- View course details
- Track completion status
- Identify prerequisites
- Plan future semesters
- Export visualization
- Share progress (optional)
-
Document Upload
- Drag-and-drop interface
- File type validation
- Upload status feedback
- Error handling
-
Course Visualization (JourneyGraph.tsx)
- Interactive graph display
- Zoom and pan controls
- Course node rendering
- Prerequisite connections
-
Course Nodes (CourseNode.tsx)
- Status indicators
- Grade display
- Credit information
- Prerequisite indicators
- React 18+ for UI
- TypeScript for type safety
- ReactFlow for visualization
- TailwindCSS for styling
- PDF.js for document processing
- GPT-3.5-turbo for data extraction
student-viz/
├── docs/
├── node_modules/
├── public/
│ └── vite.svg
├── src/
│ ├── adapters/
│ ├── assets/
│ │ └── react.svg
│ ├── components/
│ │ ├── navigation/
│ │ │ └── .gitkeep
│ │ ├── ui/
│ │ │ └── .gitkeep
│ │ └── visualization/
│ │ ├── CourseNode.tsx
│ │ └── JourneyGraph.tsx
│ ├── hooks/
│ ├── services/
│ │ ├── data/
│ │ │ └── sampleData.ts
│ │ └── layout/
│ ├── types/
│ │ └── student.ts
│ ├── utils/
│ │ └── layoutUtils.ts
│ ├── App.css
│ ├── App.tsx
│ ├── index.css
│ ├── main.tsx
│ └── vite-env.d.ts
├── tests/
├── .gitignore
├── .prettierrc
├── eslint.config.js
├── index.html
├── package.json
├── postcss.config.js
├── README.md
├── tailwind.config.js
├── tsconfig.app.json
├── tsconfig.json
├── tsconfig.node.json
└── vite.config.ts
STUDENT-VIZ-B/
├── config/
│ ├── .env
│ ├── .env.example
│ └── .env.test
├── node_modules/
├── prisma/
│ ├── migrations/
│ ├── seeds/
│ └── schema.prisma
├── src/
│ ├── config/
│ ├── core/
│ │ ├── courses/
│ │ ├── programs/
│ │ └── progress/
│ ├── infrastructure/
│ │ ├── auth/
│ │ ├── cache/
│ │ ├── database/
│ │ └── messaging/
│ ├── interfaces/
│ │ ├── events/
│ │ ├── http/
│ │ └── jobs/
│ ├── shared/
│ │ ├── errors/
│ │ ├── logging/
│ │ └── validation/
│ └── types/
│ ├── api/
│ ├── domain/
│ └── infrastructure/
├── tests/
│ ├── e2e/
│ ├── integration/
│ └── unit/
├── app.ts
├── package.json
└── tsconfig.json
adapters/: Data format conversion and external system integrationscomponents/visualization/: Core visualization components including CourseNode and JourneyGraphservices/data/: Data management and processing servicesservices/layout/: Layout calculation and managementtypes/: TypeScript type definitions for the applicationutils/: Shared utility functions and helpers
core/: Core business logic for courses, programs, and progress trackinginfrastructure/: Technical infrastructure including auth, caching, and databaseinterfaces/: External interface handlers (HTTP, events, jobs)shared/: Shared utilities, error handling, and validationprisma/: Database schema and migrationsconfig/: Environment and application configuration
-
PDF Upload
- Client-side file validation
- PDF text extraction
- Initial format verification
-
AI Processing
- Text analysis by GPT-3.5-turbo
- Course information extraction
- Prerequisite relationship identification
- Status and grade parsing
-
Data Validation
- Course information verification
- Credit hour validation
- Prerequisite consistency checks
- Term/semester organization
-
Visualization Generation
- Graph structure creation
- Layout calculation
- Interactive element setup
interface CourseNode {
id: string;
code: string;
title: string;
credits: number;
prerequisites: string[];
status: CourseStatus;
grade?: Grade;
term?: string;
description?: string;
}
type CourseStatus = 'completed' | 'in-progress' | 'planned' | 'not-started';# Project setup
npm create vite@latest student-journey-viz -- --template react-ts
cd student-journey-viz
# Core dependencies
npm install @tanstack/react-query reactflow
npm install tailwindcss postcss autoprefixer
npm install pdf-parse pdfjs-dist- Unit testing of components
- Document processing testing
- Visualization rendering tests
- User flow testing
- Secure document handling
- Data privacy
- Rate limiting
- Error handling
- Multiple document format support
- Advanced search capabilities
- Course filtering options
- Mobile responsiveness
- Progress sharing features
- PESC XML support
- EDI integration
- SIS compatibility
- Batch processing
- Administrative features
- Degree requirement tracking
- GPA calculator
- Course scheduling assistant
- Alternative path suggestions
- Progress notifications
Note: This documentation prioritizes the student-first approach while maintaining the capability to expand into institutional features in future phases.