Skip to content

Latest commit

 

History

1,600 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Viking Age — Runological Research Platform

Live site: www.vikingage.se

A comprehensive platform for runological research and analysis of Scandinavian runic inscriptions. Combines modern web technology with AI-driven analysis (via OpenRouter, Claude Sonnet) to help researchers analyze, date, and understand rune stones from the Viking Age and earlier periods.

Viking Age platform — interactive map and database of runic inscriptions

Features

  • Runic Inscriptions Database - Extensive database with coordinate data, dating, and metadata
  • AI Analysis - Automatic analysis and dating via OpenRouter (Claude)
  • Interactive Maps - Visualization of rune stones, fortresses, trade routes, and historical locations
  • Royal Chronicles - Database of historical kings, dynasties, and sources
  • Genetic Data Integration - Archaeological genetic data
  • Admin Panel - Comprehensive data management and import tools
  • Multi-language Support - Swedish and English

Tech Stack

Frontend

  • React 18.3.1
  • TypeScript
  • Vite
  • Tailwind CSS
  • shadcn/ui
  • React Router
  • TanStack Query
  • React Leaflet 4.2.1

Backend & Database

  • Supabase - Backend-as-a-Service with PostgreSQL
  • Project ID: mnuifmcjspeaauzehasj
  • Database: runic-research-db

External Services

  • OpenRouter (Claude Sonnet) - AI analysis (server-side edge function)
  • Google Maps API - Geocoding and mapping

Local Development

Prerequisites

  • Node.js and npm installed (install with nvm)
  • Access to Supabase project credentials

Setup Steps

  1. Clone the repository

    git clone https://github.com/expandtalk/Vikingage.git
    cd Vikingage
  2. Install dependencies

    npm install
  3. Setup environment variables

    cp .env.example .env
  4. Configure API credentials

    Open .env and fill in the variables:

    • Supabase credentials - Contact the project administrator or:

    • OpenRouter API key - Set as a Supabase secret (server-side), not in .env: supabase secrets set OPENROUTER_API_KEY=sk-or-...

    • Google Maps API key (optional) - Get from https://console.cloud.google.com/

    Important: Never commit .env to version control - it's in .gitignore for security

  5. Start development server

    npm run dev

    The app will be available at http://localhost:5176

Available Scripts

# Start development server
npm run dev

# Build for production
npm run build

# Run linting
npm run lint

Security Notes

  • Environment variables in .env are not tracked by git (protected in .gitignore)
  • The .env.example file shows which variables are needed but contains no sensitive data
  • Never share API keys or database credentials publicly
  • Always use environment variables for sensitive data

Database Schema

The database includes tables for:

  • Runic inscriptions
  • Geographic data (parishes, hundreds, folk groups, cities, fortresses)
  • Historical data (kings, dynasties, sources)
  • Genetic data (individuals, markers, populations)
  • Religious sites (monasteries, churches, bishoprics)
  • Trade routes and goods
  • Artifacts and carvers

See CLAUDE.md for detailed database documentation.

Deployment

The application can be deployed as a static site or with a Node.js server. The Vite build output is suitable for any static hosting service.

Contributing

When contributing:

  1. Create a new branch for your feature
  2. Make your changes
  3. Commit with clear, descriptive messages
  4. Push to your branch
  5. Create a pull request

Project Structure

vikingage/
├── src/
│   ├── components/        # React components
│   ├── pages/             # Page routes
│   ├── services/          # External services (aiService, Maps)
│   ├── types/             # TypeScript types
│   └── utils/             # Helper functions
├── supabase/
│   ├── migrations/        # Database migrations
│   └── functions/         # Edge Functions
├── public/                # Static assets
└── README.md              # This file

Support & Documentation

About

Interactive research platform for Scandinavian runic inscriptions — maps, AI-assisted dating, and databases of runestones, carvers, kings, trade routes and archaeological finds.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages