A single page application that helps facilitate the "give one get one" principle of the buddy exchange by making it easy for codecheckers to find and claim issues that need reviewing.
The app queries the GitHub API to find issues labeled "buddy exchange" in the CODECHECK register repository and provides easy access to issues that currently do not have an assigned codechecker.
- 📋 Browse available buddy exchange issues
- 🔍 View issue details, authors, and labels
- 🎯 One-click claim functionality with instructions
- 🔄 Auto-refresh every 5 minutes
- 📱 Responsive design for mobile and desktop
- 🎨 Consistent CODECHECK branding
-
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 and Bootstrap 5.3.2
- 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/bootstrap@5.3.2/dist/css/bootstrap.min.css
- JS Source: https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js
- Output:
assets/css/bootstrap.min.cssandassets/js/bootstrap.min.js
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://codecheck.org.uk/buddy-exchange
The app uses the production CODECHECK register as its data source by default. For development and testing, a separate testing register is available and can be selected via a small switcher in the page footer.
buddy-exchange/
├── index.html # Main entry point
├── package.json # Project configuration
├── assets/
│ ├── css/
│ │ ├── bootstrap.min.css # Bootstrap CSS (downloaded)
│ │ └── main.css # Custom styles
│ ├── js/
│ │ ├── jquery.min.js # jQuery library (downloaded)
│ │ ├── bootstrap.min.js # Bootstrap JS (downloaded)
│ │ ├── marked.min.js # Markdown parser (downloaded)
│ │ ├── config.js # Application configuration
│ │ ├── app.js # Main application logic
│ │ ├── github-api.js # GitHub API interface
│ │ └── ui.js # UI components
│ └── images/ # Images and icons
└── README.md # This fileThis 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 |
| Marked.js | 9.1.6 | MIT | Markdown parsing and rendering |
All libraries are distributed under the MIT License, which is compatible with this project's MIT License.
- Python 3 (for local development server)
- curl (for downloading dependencies)
- Modern web browser with JavaScript enabled
MIT License - see LICENSE file for details.