An AI-powered system for evaluating transfer credits from academic transcripts for CSU Global.
- Extract course data from transcripts using Google's Gemini AI
- Apply transfer credit rules based on CSU Global policies
- Generate detailed evaluation reports
- Interactive UI for reviewing and managing evaluations
- Role-based access control
- Comprehensive audit logging
- API rate limiting and security
- Performance optimization through caching
confidence_scorer.py: Confidence scoring for data extractionevaluator.py: Transfer credit evaluation rulesmodels.py: Data structures for students, courses, and institutionsdisplay.py: UI and report generationparsers.py: Data parsing and normalizationprocessors.py: Transcript processing workflowgemini_client.py: Google Gemini AI integration
auth.py: Role-based access control systemrules_engine.py: Business rules engineaudit.py: Comprehensive audit loggingrate_limit.py: API rate limitingcache.py: Performance optimization
- Clone the repository:
git clone https://github.com/yourusername/csug_transcript_estimator.git
cd csug_transcript_estimator- Create a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Set up environment variables:
cp .env.example .env
# Edit .env with your configurationGEMINI_API_KEY: Google Gemini API keyJWT_SECRET_KEY: Secret key for JWT tokensREDIS_URL: Redis connection URLDATABASE_URL: Database connection URLLOG_LEVEL: Logging level (DEBUG, INFO, etc.)
Three user roles are available:
- Enrollment: Basic view access
- TES: Transfer evaluation specialist with edit access
- Admin: Full system access
- Start the application:
streamlit run src/app.py-
Access the web interface at
http://localhost:8501 -
Log in with your credentials
-
Upload transcripts for evaluation
- Default: 100 requests per hour
- Authenticated: 1000 requests per hour
- Burst: 50 requests per minute
POST /api/v1/evaluate: Submit transcript for evaluationGET /api/v1/results/{id}: Get evaluation resultsPUT /api/v1/review/{id}: Update evaluationGET /api/v1/reports: Generate reports
-
Role-Based Access Control
- Granular permissions system
- JWT-based authentication
- Session management
-
API Protection
- Rate limiting
- Request validation
- CORS configuration
-
Audit Logging
- User activity tracking
- Data change history
- Security event logging
-
Data Security
- Encryption at rest
- Secure credential storage
- Input sanitization
-
Caching System
- Redis-based caching
- In-memory fallback
- Configurable TTL
-
Rate Limiting
- Token bucket algorithm
- Distributed rate limiting
- Custom limits per endpoint
Run tests:
pytestGenerate coverage report:
pytest --cov=src tests/Format code:
black src/Run linter:
flake8 src/Type checking:
mypy src/- Fork the repository
- Create a feature branch
- Make your changes
- Run tests
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.