Skip to content

Student Management System for Automotive Engineering in MIEEK of Cyprus - A comprehensive student management system with course evaluation, attendance tracking, grade calculation, and performance analytics.

License

Notifications You must be signed in to change notification settings

bs1gr/AUT_MIEEK_SMS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

GitHub Configuration

This directory contains all GitHub-specific configuration for the Student Management System project.

πŸ“ Directory Structure

.github/
β”œβ”€β”€ workflows/              # 21 GitHub Actions workflows
β”‚   β”œβ”€β”€ ci-cd-pipeline.yml             # ⭐ Main CI/CD pipeline
β”‚   β”œβ”€β”€ docker-publish.yml             # ⭐ Docker image publishing
β”‚   β”œβ”€β”€ release-on-tag.yml             # ⭐ Release automation
β”‚   β”œβ”€β”€ commit-ready-cleanup-smoke.yml # Pre-commit validation
β”‚   β”œβ”€β”€ codeql.yml                     # Code security scanning
β”‚   β”œβ”€β”€ dependency-review.yml          # Dependency security
β”‚   β”œβ”€β”€ e2e-tests.yml                  # End-to-end testing
β”‚   β”œβ”€β”€ quickstart-validation.yml      # Onboarding validation
β”‚   β”œβ”€β”€ doc-audit.yml                  # Documentation checks
β”‚   β”œβ”€β”€ markdown-lint.yml              # Markdown validation
β”‚   β”œβ”€β”€ apply-branch-protection.yml    # Branch rule enforcement
β”‚   β”œβ”€β”€ operator-approval.yml          # Multi-approval gates
β”‚   β”œβ”€β”€ labeler.yml                    # Auto issue labeling
β”‚   β”œβ”€β”€ stale.yml                      # Stale issue handling
β”‚   β”œβ”€β”€ dependabot-auto.yml            # Dependency updates
β”‚   β”œβ”€β”€ backend-deps.yml               # Backend dependencies
β”‚   β”œβ”€β”€ frontend-deps.yml              # Frontend dependencies
β”‚   β”œβ”€β”€ native-setup-smoke.yml         # Native dev validation
β”‚   β”œβ”€β”€ native-deepclean-safety.yml    # Cleanup safety
β”‚   β”œβ”€β”€ commit-ready-smoke.yml         # Smoke testing
β”‚   └── archive-legacy-releases.yml    # Release archival
β”œβ”€β”€ CODEOWNERS             # Team responsibility assignment
β”œβ”€β”€ GITHUB_QUICK_START.md  # 5-minute quick start guide
└── README.md              # This file

πŸ“„ Root-level related:
β”œβ”€β”€ GITHUB_DEPLOYMENT_SETUP_COMPLETE.md    # Setup completion guide
β”œβ”€β”€ GITHUB_DEPLOYMENT_SUMMARY.md            # Detailed configuration
β”œβ”€β”€ COMMIT_READY.ps1                       # Pre-commit validation
β”œβ”€β”€ DOCKER.ps1                             # Docker deployment
β”œβ”€β”€ NATIVE.ps1                             # Native development
└── VERSION                                # Current version

πŸš€ Quick Start

5-Minute Setup

See GITHUB_QUICK_START.md for quick reference.

Full Documentation

See GITHUB_DEPLOYMENT_SUMMARY.md for complete details.

Setup Completion Guide

See GITHUB_DEPLOYMENT_SETUP_COMPLETE.md for verification steps.

πŸ”„ CI/CD Pipeline

Main Pipeline (ci-cd-pipeline.yml) ⭐

Runs on: Push to main, Pull Requests, Release tags

Stages:

  1. Setup (Python, Node.js, cache)
  2. Validation (type check, lint, format)
  3. Testing (pytest, vitest, smoke tests)
  4. Security (CodeQL, dependency review)
  5. Build (Docker images)
  6. Publish (GHCR, release)

Duration: ~30-50 minutes

Docker Publishing (docker-publish.yml) ⭐

Runs on: Successful ci-cd-pipeline on main branch

Actions:

  • Build backend Docker image
  • Build frontend Docker image
  • Scan for vulnerabilities
  • Push to GHCR (ghcr.io)
  • Generate SBOM

Tags:

  • latest - Latest stable build
  • v{VERSION}-build.{BUILD_NUMBER} - Specific build

Release Automation (release-on-tag.yml) ⭐

Runs on: Tag push matching v* pattern

Actions:

  • Create GitHub Release
  • Generate release notes from commits
  • Build final Docker images
  • Publish Docker images
  • Upload artifacts

πŸ” Security Workflows

CodeQL (codeql.yml)

Continuous code vulnerability scanning using SAST analysis.

  • Triggers on: Push, Pull requests
  • Languages: Python, JavaScript/TypeScript
  • Severity levels: Critical, High, Medium
  • Reports in: Security tab β†’ Code scanning

Dependency Review (dependency-review.yml)

Prevents PRs with risky or vulnerable dependencies.

  • Triggers on: Pull requests
  • Checks: License compatibility, known vulnerabilities
  • Blocks merge: If high-risk found
  • Reports in: PR checks

Dependabot Auto (dependabot-auto.yml)

Automated dependency updates with auto-approval.

  • Triggers daily
  • Checks: Python, Node.js, Docker, GitHub Actions
  • Approves: Patch and minor versions
  • Requires review: Major versions

πŸ“‹ Quality Gates

Commit Ready (commit-ready-cleanup-smoke.yml)

Pre-commit validation and cleanup.

  • Code formatting (black, prettier)
  • Import organization (isort, eslint)
  • Type checking (mypy)
  • Linting (ruff, eslint)
  • Smoke tests (pytest, vitest)

Run locally: .\COMMIT_READY.ps1 -Quick

Doc Audit (doc-audit.yml)

Documentation completeness verification.

  • Checks required docs exist
  • Validates markdown format
  • Verifies code examples
  • Checks cross-references

Markdown Lint (markdown-lint.yml)

Markdown format validation.

  • Rule enforcement
  • Link validation
  • Code block checking
  • Line length verification

πŸ”§ Operational Workflows

Branch Protection (apply-branch-protection.yml)

Enforces branch protection rules.

  • Main branch rules:
    • Require 1 PR review
    • Require status checks pass
    • Require branch up to date
    • Auto-delete head branches

Multi-Approval Gate (operator-approval.yml)

Requires multiple approvals for sensitive changes.

  • Triggers on: PR to main
  • Requires: 2 approvals (configurable)
  • Blocks: Merge until satisfied

Auto Labeler (labeler.yml)

Automatically labels issues and PRs.

  • By file changes
  • By PR size
  • By issue template
  • By commit message

Stale Issue Management (stale.yml)

Automatically closes stale issues.

  • Inactivity period: 30 days
  • Reminder period: 14 days
  • Labels: stale, no-response
  • Excludes: Pinned, labeled keep-alive

πŸ“Š Dependency Management

Backend Dependencies (backend-deps.yml)

Python package management.

  • Runs: Weekly, on demand
  • Checks: requirements.txt, constraints.txt
  • Updates: Creates PRs for updates
  • Approval: Auto-approved for patches

Frontend Dependencies (frontend-deps.yml)

Node.js package management.

  • Runs: Weekly, on demand
  • Checks: package.json, package-lock.json
  • Updates: Creates PRs for updates
  • Approval: Auto-approved for patches

πŸ§ͺ Testing Workflows

E2E Tests (e2e-tests.yml)

End-to-end application testing.

  • Runs: Manual trigger, releases

  • Steps:

    1. Start Docker container
    2. Wait for application ready
    3. Run Playwright tests
    4. Generate report
    5. Cleanup
  • Duration: ~15-20 minutes

Quickstart Validation (quickstart-validation.yml)

New developer onboarding validation.

  • Runs: Manual trigger, on demand
  • Tests:
    1. Clone repository
    2. Run setup script
    3. Start application
    4. Run smoke tests
    5. Verify health endpoints

πŸ—οΈ Development Workflows

Native Setup Smoke (native-setup-smoke.yml)

Validates native development environment.

  • Runs: On demand, release
  • Tests:
    1. Install dependencies
    2. Start backend
    3. Start frontend
    4. Run pytest
    5. Run vitest

Native Deepclean Safety (native-deepclean-safety.yml)

Safe native environment cleanup.

  • Runs: On demand
  • Actions:
    1. Kill running processes
    2. Clean node_modules
    3. Clean Python cache
    4. Verify safety

πŸ“¦ Release Management

Archive Legacy Releases (archive-legacy-releases.yml)

Archives old releases.

  • Runs: Nightly
  • Actions:
    1. List releases
    2. Archive pre-v1.8.0
    3. Mark as deprecated
    4. Add notice in description

πŸ” Team Assignment

See CODEOWNERS file for:

  • Code review requirements
  • Team assignments
  • Required reviewers per area

πŸ› οΈ Local Validation

Before committing, run:

# Quick validation (2-3 min)
.\COMMIT_READY.ps1 -Quick

# Standard validation (5-8 min)
.\COMMIT_READY.ps1 -Standard

# Full validation (15-20 min)
.\COMMIT_READY.ps1 -Full

πŸ“š Documentation

Document Purpose
GITHUB_QUICK_START.md 5-minute developer reference
GITHUB_DEPLOYMENT_SUMMARY.md Complete setup & pipeline details
GITHUB_DEPLOYMENT_SETUP_COMPLETE.md Setup verification guide
docs/development/GIT_WORKFLOW.md Git conventions & branching
docs/development/ARCHITECTURE.md System architecture
.github/workflows/*/ Individual workflow documentation

βœ… Setup Checklist

For admins setting up the repository:

  • Configure GitHub Secrets
    • GHCR_TOKEN - Container registry token
    • REGISTRY_USERNAME - GitHub username
  • Enable Branch Protection (main)
    • Require PR review
    • Require status checks
    • Require branches up to date
  • Enable CodeQL (Security tab)
  • Enable Dependabot (Security tab)
  • Configure CODEOWNERS
  • Set notification preferences

πŸ†˜ Troubleshooting

Pipeline Not Triggering

  1. Check .github/workflows/ files exist
  2. Verify workflow YAML syntax
  3. Check branch protection rules
  4. Verify GitHub Actions enabled in repo settings

Tests Failing in Pipeline

  1. Review error logs in Actions tab
  2. Reproduce locally: .\COMMIT_READY.ps1 -Full
  3. Check environment differences
  4. Verify dependencies up to date

Docker Build Failing

  1. Check Dockerfile syntax
  2. Verify dependencies in requirements.txt
  3. Check Docker image size limits
  4. Review build logs for specific errors

Release Not Publishing

  1. Verify tag format matches v*
  2. Check GHCR_TOKEN secret configured
  3. Review docker-publish.yml logs
  4. Verify image build succeeded

πŸ“ž Support

  • Documentation: See GITHUB_DEPLOYMENT_SUMMARY.md
  • Quick Help: See GITHUB_QUICK_START.md
  • Workflow Issues: Check specific .yml file
  • GitHub Actions Logs: Actions tab β†’ Select workflow β†’ View logs

🎯 Key Metrics

Metric Value
Total Workflows 21
Pipeline Duration 30-50 min
Parallel Jobs 6+
Test Coverage Target >80%
Security Scans 2 (CodeQL, Dependencies)
Artifact Retention 90 days

Configuration Version: 1.0 Last Updated: 2025-01-08 Status: βœ… Production Ready

See GITHUB_DEPLOYMENT_SETUP_COMPLETE.md for setup verification and next steps.

About

Student Management System for Automotive Engineering in MIEEK of Cyprus - A comprehensive student management system with course evaluation, attendance tracking, grade calculation, and performance analytics.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors 4

  •  
  •  
  •  
  •