Skip to content

fedeazzato/vigo-uy

Repository files navigation

Wiki Vigo Uruguay ⚡

Static web app for the Amantes de la Vigo Uruguay 🇺🇾 community.
Built with React + TypeScript + Vite. Hosted on GitHub Pages. No backend.


Requirements

  • Node.js 18+
  • npm 9+

Local development

# 1. Clone the repo
git clone https://github.com/fedeazzato/vigo-uy.git
cd vigo-uy

# 2. Install dependencies
npm install

# 3. Start dev server
npm run dev
# → Opens http://localhost:5173/vigo-uy/

Deploy to GitHub Pages

npm run deploy

This builds the app and pushes it to the gh-pages branch automatically.
On first deploy, go to GitHub → Settings → Pages → Source and select the gh-pages branch.

The app will be live at: https://fedeazzato.github.io/vigo-uy/


Project structure

vigo-uy/
├── index.html
├── vite.config.ts
├── tsconfig.json
├── package.json
└── src/
    ├── main.tsx           # Entry point with HashRouter
    ├── App.tsx            # App routes
    ├── types.ts           # Shared TypeScript interfaces
    ├── index.css          # Global design system
    ├── data/              # ← Edit these files to update content
    │   ├── charging.json  # Home and public charging
    │   ├── routes.json    # Routes and stops
    │   ├── costs.json     # Costs and comparisons
    │   ├── accessories.json
    │   └── tech-faq.json  # Technology and FAQ
    ├── components/
    │   ├── Layout.tsx     # Sidebar + mobile nav
    │   └── UI.tsx         # Reusable UI components
    └── pages/
        ├── ChargingPage.tsx
        ├── RoutesPage.tsx
        ├── CostsPage.tsx
        ├── AccessoriesPage.tsx
        ├── TechPage.tsx
        └── FaqPage.tsx

Updating content

All content lives in JSON files under src/data/.
No React code changes needed to add tips, questions, or new routes.

Add a charging tip

Open src/data/charging.jsonhomeCharging.tips → append:

{ "bold": "New tip:", "text": "Tip description." }

Add a route

Open src/data/routes.jsonroutes array → append:

{
  "id": "new-route",
  "title": "Montevideo → Destination",
  "distance": "~X km",
  "difficulty": "Fácil",
  "stops": [
    { "name": "Montevideo", "type": "origin" },
    { "name": "Stop", "type": "charge", "note": "Description." },
    { "name": "Destination", "type": "destination" }
  ],
  "tips": ["Tip 1.", "Tip 2."]
}

Stop types: origin, destination, charge, warning

Add a FAQ entry

Open src/data/tech-faq.jsonfaq array → append:

{ "q": "¿La pregunta?", "a": "La respuesta completa." }

Type checking

npm run type-check

Tech stack

Technology Purpose
React 18 UI
TypeScript 5 Type safety
Vite 5 Build tool
React Router 6 Navigation (HashRouter for GH Pages)
CSS Modules Scoped styles
gh-pages Automated deploy
JSON Content data source

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors