A photo archive of the 3rd Technology Olympiad, featuring the Image Processing and Natural Language Processing (NLP) League, with a focus on Day 2 of the event.
This repository provides an online photo gallery, original image download links, and utilities for extracting and managing photo downloads.
The gallery provides:
- Photo Grid: Browse event photos through a thumbnail gallery.
- Full-Size Viewer: Open images in a larger view.
- Navigation: Move between photos using previous and next controls.
- Slideshow: Automatically cycle through the photos.
- Thumbnail Filmstrip: Navigate quickly between images.
- Image Information: View the filename and file size.
- Download Original: Download the original image directly from its hosting source.
olympics-tech-day2-photos/
│
├── assets/
│ ├── css/
│ │ └── style.css
│ └── js/
│ └── gallery.js
│
├── download/
│ ├── extract_links.py
│ ├── links.csv
│ └── uget_urls.txt
│
├── img/
│ └── .gitkeep
│
├── media/
│ ├── large/
│ ├── thumbs/
│ └── photos.json
│
├── scripts/
│ └── requirements.txt
│
├── .gitignore
├── .nojekyll
├── index.html
├── LICENSE
└── README.md
| Path | Description |
|---|---|
assets/css/ |
Gallery styles and layout |
assets/js/ |
Gallery functionality and interactions |
download/ |
Download-link extraction utilities and generated files |
img/ |
Local storage for original, high-resolution photos |
media/large/ |
Optimized images used in the full-size viewer |
media/thumbs/ |
Optimized thumbnails used in the gallery grid |
media/photos.json |
Photo manifest containing filenames, sizes, and image URLs |
scripts/ |
Python utilities for image processing |
index.html |
Main gallery page |
Note: Original high-resolution images stored in img/ are excluded from Git tracking to avoid unnecessarily increasing the repository size. The online gallery uses optimized images and externally hosted original download links.
git clone https://github.com/FunCodingLab/olympics-tech-day2-photos.git
cd olympics-tech-day2-photosSince the gallery loads its photo manifest using JavaScript fetch(), use a local HTTP server rather than opening index.html directly.
With Python 3:
python3 -m http.server 8000Open the following address in your browser:
http://localhost:8000
Press Ctrl + C to stop the server.
There are two ways to download the original photos.
- Open the online gallery.
- Select the photo you want.
- Click the Download Original button.
The original image is downloaded from its external hosting source.
For downloading a large collection of images, you can use the included link extraction script together with uGet Download Manager.
Step 1 — Extract Download Links
From the repository root, run:
python3 download/extract_links.pyThe script retrieves the image listing page, extracts direct download URLs, removes duplicate URLs, and handles duplicate filenames.
It generates two files:
| File | Description |
|---|---|
download/links.csv |
Download manifest containing filenames, sizes, and URLs |
download/uget_urls.txt |
Plain-text list of direct download URLs |
Step 2 — Import Links into uGet
- Open uGet.
- Select File → Batch Downloads.
- Import or paste the URLs from
download/uget_urls.txt. - Configure the destination directory, preferably
img/. - Start the download queue.
Each line in uget_urls.txt represents one download URL.
Step 3 — Verify Downloads
After downloading, compare the downloaded files with download/links.csv to check filenames and identify missing files.
The CSV also preserves unique local filenames for files that originally have duplicate names.
- Python 3
- A modern web browser
- uGet (optional, for batch downloads)
The link extraction utility uses Python's standard library and does not require third-party packages.
For the image-processing utilities in scripts/, install their dependencies using:
python3 -m pip install -r scripts/requirements.txtThe gallery uses media/photos.json as its image manifest.
Each photo entry contains:
filename: Original image filename.size: Human-readable original file size.size_bytes: Original file size in bytes.download_url: Direct original-image download URL.thumb: Path to the thumbnail.large: Path to the larger optimized image.
When adding or replacing photos, ensure that the manifest and corresponding optimized images remain synchronized.
This repository is configured for GitHub Pages.
To publish the gallery:
- Open the repository's Settings.
- Navigate to Pages.
- Under Build and deployment, select
Deploy from a branch. - Select the
mainbranch. - Select the
/(root)directory. - Save the configuration.
The website will be available at:
https://funcodinglab.github.io/olympics-tech-day2-photos/
The repository's root index.html serves as the entry point.
The repository includes an MIT License. Please check the applicable ownership and usage permissions before redistributing event photographs or using them for other purposes.
Created and maintained by FunCodingLab.
A digital archive of the 3rd Technology Olympiad — Image Processing and NLP League.
Preserving moments, people, and memories from the Technology Olympiad.