A single page application that helps create new issues for the CODECHECK Register by identifying the next available certificate identifier and setting the correct tags for different types of CODECHECK issues.
The app queries the GitHub API to analyze existing issues in both the testing register and production register repositories, calculates the next sequential certificate identifier, and generates properly formatted GitHub issues with appropriate templates and labels.
- 🔢 Smart Identifier Calculation: Automatically finds the next available certificate identifier
- 🏷️ Unified Template: Single template for all CODECHECK works
- 🔄 Repository Selection: Toggle between testing and production registers
- 👥 Codechecker Assignment: Search and assign codecheckers from CSV data with auto-complete
- 📝 Author Management: Input and manage author names for certificates
- 📋 Template Generation: Pre-filled issue templates with proper formatting
- 👁️ Issue Preview: Modal preview of GitHub issues before creation
- 🎯 Direct GitHub Integration: One-click issue creation with correct labels
- 📊 Repository Statistics: View register metrics and analysis results
- 📱 Responsive Design: Mobile-friendly interface
- 🎨 Consistent CODECHECK Branding: Matches codecheck.org.uk design
-
Download dependencies:
npm run download-deps
-
Start the development server:
npm start
-
Open your browser: Navigate to
http://localhost:8000
Starts a local development server on port 8000 using Python's built-in HTTP server.
- Command:
python3 -m http.server 8000 - Access: http://localhost:8000
Alternative command to start the development server (same as npm start).
- Command:
python3 -m http.server 8000 - Access: http://localhost:8000
Downloads all required JavaScript and CSS dependencies locally. This ensures the app works offline and doesn't rely on CDNs.
- Downloads: jQuery 3.7.1, Bootstrap 5.3.2, and Papa Parse 5.4.1
- Run this first before starting the application
Downloads only the jQuery library to assets/js/jquery.min.js.
- Source: https://code.jquery.com/jquery-3.7.1.min.js
- Output:
assets/js/jquery.min.js
Downloads Bootstrap CSS and JavaScript files to the assets directory.
- CSS Source: https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css
- JS Source: https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js
- Output:
assets/css/bootstrap.min.cssandassets/js/bootstrap.min.js
Downloads the Papa Parse CSV parsing library to handle codechecker data.
- Source: https://cdn.jsdelivr.net/npm/[email protected]/papaparse.min.js
- Output:
assets/js/papaparse.min.js
- Repository Analysis: The app fetches all issues from the selected GitHub repository
- Identifier Extraction: Uses regex patterns to find existing certificate identifiers (format: YYYY.NNNNN)
- Next ID Calculation: Determines the next sequential number available for the current year
- Template Generation: Creates issue titles, bodies, and labels for CODECHECK works
- GitHub Integration: Generates pre-filled GitHub issue creation URLs
This application is designed for static hosting and is fully compatible with GitHub Pages:
- Push your changes to the
mainbranch - Enable GitHub Pages in repository settings
- Set source to "Deploy from a branch" →
main→/ (root) - Your app will be available at
https://codecheckers.github.io/launch-pad
launch-pad/
├── index.html # Main entry point
├── package.json # Project configuration and scripts
├── assets/
│ ├── css/
│ │ ├── bootstrap.min.css # Bootstrap CSS (downloaded)
│ │ └── main.css # Custom CODECHECK styles
│ ├── js/
│ │ ├── jquery.min.js # jQuery library (downloaded)
│ │ ├── bootstrap.min.js # Bootstrap JS (downloaded)
│ │ ├── papaparse.min.js # Papa Parse CSV library (downloaded)
│ │ ├── config.js # Configuration and constants
│ │ ├── github-api.js # GitHub API client
│ │ ├── codechecker-manager.js # Codechecker data management
│ │ ├── ui.js # UI management and event handling
│ │ └── app.js # Main application logic
│ └── images/ # Icons and images
├── README.md # This file
├── LICENSE # MIT License
└── CLAUDE.md # Project guidelinesThis project uses the following third-party libraries:
| Library | Version | License | Purpose |
|---|---|---|---|
| jQuery | 3.7.1 | MIT | DOM manipulation and AJAX requests |
| Bootstrap | 5.3.2 | MIT | CSS framework for responsive design |
| Papa Parse | 5.4.1 | MIT | CSV parsing for codechecker assignment data |
All libraries are distributed under the MIT License, which is compatible with this project's Apache License 2.0.
The application supports different repository configurations:
- Testing Register:
codecheckers/testing-dev-register(for development) - Production Register:
codecheckers/register(for live certificates)
The application uses a single, unified template for all CODECHECK works, regardless of publication status or type.
- Python 3 (for local development server)
- curl (for downloading dependencies)
- Modern web browser with JavaScript enabled
- Internet connection (for GitHub API access)
Apache License 2.0 - see LICENSE file for details.