Skip to content

Community City Guide is a decentralized, open-source travel directory built entirely on GitHub. It uses an "IssueOps" approach to crowd-source and curate the best places to "Eat" and "See".

License

Notifications You must be signed in to change notification settings

ateliti99/git-guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌍 Git Guide

A decentralized, open-source travel directory built entirely on GitHub.

Vote Manager

What is Git Guide?

Git Guide is a community-curated travel directory that uses GitHub as both the frontend and backend. No databases, no servers - just Markdown files and GitHub Actions!

Key Features:

  • 🗳️ Community Voting - Places are added based on community consensus
  • 🤖 Fully Automated - Bot handles all file creation and indexing
  • 📁 Git-based CMS - All data stored as Markdown files
  • 🌐 Open Source - Transparent, forkable, and self-hostable

How It Works

flowchart TB
    subgraph User["👤 User"]
        A[Opens Issue]
        B[Fills YAML Form]
    end
    
    subgraph Community["👥 Community"]
        C[Votes with 👍/👎]
    end
    
    subgraph Mod["🛡️ Moderator"]
        D[Reviews Proposal]
        E[Adds 'mod-approved' Label]
    end
    
    subgraph Bot["🤖 GitHub Actions"]
        F[Checks Vote Threshold]
        G[Validates City via geopy]
        H[Creates Markdown File]
        I[Updates Index Files]
        J[Closes Issue]
    end
    
    A --> B --> C --> D --> E --> F
    F -->|≥100 votes| G --> H --> I --> J
    F -->|<100 votes| K[Waits for more votes]
Loading

📂 Browse the Guide

→ Browse All Countries

🚀 Quick Start

Propose a New Place

  1. Open a new Issue and select "📍 Propose a Place"
  2. Fill out the form with place details
  3. Wait for community votes (👍 / 👎)
  4. Once approved by moderators, the bot adds it automatically!

Vote on Proposals

  1. Browse open proposals
  2. React with 👍 to support or 👎 to oppose
  3. Your vote counts toward the 100-vote threshold

📁 Data Structure

All guide data is stored as Markdown files in a strict hierarchy:

countries/
├── README.md                    # Index of all countries
├── Italy/
│   ├── README.md                # Index of Italian cities
│   ├── Rome/
│   │   ├── README.md            # Index of Rome places
│   │   ├── Eat/
│   │   │   └── trattoria_da_mario.md
│   │   └── See/
│   │       └── colosseum.md
│   └── Florence/
│       └── ...
└── Japan/
    └── Tokyo/
        └── ...

🔧 Technical Details

Architecture

Component Technology
Frontend GitHub Issues (YAML Forms)
Backend GitHub Actions
Database Markdown Files (Git)
Geo Validation geopy (OpenStreetMap)
API PyGithub

Voting Formula

A place is accepted when:

net_votes = thumbs_up - thumbs_down
accepted = net_votes >= 100 AND mod_approved == true

Automation Triggers

  • Scheduled: Every 6 hours
  • 🏷️ On Label: When mod-approved is added
  • 🖱️ Manual: Via workflow dispatch

🤝 Contributing

See CONTRIBUTING.md for detailed guidelines.

Quick Links:


Built with ❤️ using IssueOps
No databases. No servers. Just Git.

About

Community City Guide is a decentralized, open-source travel directory built entirely on GitHub. It uses an "IssueOps" approach to crowd-source and curate the best places to "Eat" and "See".

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages