Interactive, open-source memorial website dedicated to commemorating individuals in Iran who lost their lives during the revolution.
- Responsive, vector-based map interface with interactive red markers
- Click a marker to view biography, date/location, media, and testimonials
- Search and filtering by name, city, and year
- Accessibility-first design meeting WCAG 2.1 AA principles
- Privacy-friendly: no analytics, no tracking, no cookies
- Multilingual support (Persian and English)
- Admin submission tool generating validated JSON for moderated entries
- Create a
.envfile in the root directory:cp .env.example .env
- Add your OpenRouter API key to the
.envfile:VITE_OPENROUTER_API_KEY=sk-or-v1-...
To use the AI features on your deployed site, you must add your API key to GitHub Secrets:
- Go to your repository on GitHub.
- Click Settings > Secrets and variables > Actions.
- Click New repository secret.
- Name:
VITE_OPENROUTER_API_KEY. - Value: Your OpenRouter API key.
- Your CI/CD workflow will now securely inject this key during the build process.
- HTML5, CSS3, TypeScript, Vite
- Leaflet.js for interactive mapping
- Static JSON data model stored in
public/data/memorials.json
npm install
npm run devOpen the local URL shown and visit /admin.html for the submission tool.
Memorial entries follow this shape:
{
"id": "unique-id",
"name": "Full Name",
"city": "City",
"location": "City, Iran",
"date": "YYYY-MM-DD",
"coords": { "lat": 35.6892, "lon": 51.3890 },
"bio": "Optional biography",
"testimonials": ["Optional testimonial lines"],
"media": { "photo": "/path.jpg", "video": "/path.mp4" }
}- Keyboard accessible markers and detail panel
- Sufficient color contrast and focus indicators
- Semantic landmarks (header, main, aside, footer) and ARIA labels
See public/privacy.html. No trackers or cookies. Content is community-moderated according to our Care, Visibility & Data Protocol; open an issue for corrections or removals.
See CONTRIBUTING.md and our Care Protocol for guidelines. Issues and PRs welcome.
Pushes to main trigger build and deployment to GitHub Pages via Actions (.github/workflows/deploy.yml).
- atakhadiviom - Lead Developer & Maintainer
- Davoud Ramezani Kermani - Full-stack Developer & Core Contributor
- Sadegh Rizi - PDF Poster Concept & Original Idea
MIT. See LICENSE.