Skip to content

markpawl/Events

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

64 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Live Performance Events Guide 🎡

License: MIT Stars Live Demo

Features:

Lets audience members:

  • Access information about the event,
  • View artist's bio,
  • See the setlist,
  • Pick any setlist song to view,
  • Check out song lyrics,
  • See lyrics in an alternate language,
  • Easily install on any device,


πŸ–ΌοΈ Take a Look...

Click here to View Live Demo β†’

πŸ” Click here to View Full Screenshot
Screenshot 2026-05-09 at 3 03 41β€―PM

Screenshot 2026-05-09 at 3 03 41β€―PM
---

⚑ Quick Start

# 1. Clone the repository
git clone https://github.com/markpawl/Events.git
cd Events

# 2. Install dependencies
npm install

# 3. Start the development server
npm run dev

Open http://localhost:5173 in your browser. That's it β€” no API keys, no environment setup required.


πŸ“– About the Project

Managing music performance data is surprisingly messy. Setlists change, artist lineups shift, and fan-facing apps often require a full backend just to update a song entry. Events PWA solves this by treating content as structured, file-based data that anyone can update β€” no backend, no database, no deployment pipeline required for content changes.

The motivation: This project was built to give music communities and small venues a lightweight, installable web app for tracking performances, without the overhead of a full CMS or server. By choosing a file-based, modular data architecture, contributors can add a new artist or setlist by following a simple template β€” making the project genuinely open to non-developer contributors.

Why this stack?

  • React was chosen for its component model, which maps cleanly to the domain objects (Artist, Venue, SetList) and enables maximum UI reuse.
  • Vite provides near-instant HMR during development and optimized production builds β€” critical for a PWA where load performance matters.
  • Bootstrap 5 delivers a responsive, accessible layout without writing custom CSS grid systems from scratch.
  • vite-plugin-pwa handles the full PWA lifecycle (service worker, manifest, offline caching) declaratively, keeping the app installable on Android and iOS with minimal boilerplate.

✨ Key Features

  • πŸ“± Progressive Web App (PWA) β€” Fully offline-capable with a complete web manifest and icon set. Users can install the app directly from their browser on mobile and desktop.
  • πŸ—‚ Modular Data Schema β€” Domain-driven folder structure for Songs, Events, and Artists. JS-based templates enforce data consistency and allow content updates without touching UI code.
  • 🧩 Decoupled Component Architecture β€” Reusable Artist, Venue, and SetList components are fully independent, making it easy to extend or restyle individual sections.
  • 🌍 i18n Ready β€” Structured to support multilingual content (German/English) through a centralized data layer β€” no runtime library required to get started.
  • ⚑ Vite-Powered Builds β€” Lightning-fast development server with Hot Module Replacement and optimized production output.
  • 🎨 Bootstrap 5 + Bootstrap Icons β€” Clean, responsive UI out of the box, with a comprehensive icon library for event and music-related UI elements.
  • πŸ” ESLint Configured β€” Enforced code quality with React-specific rules (react-hooks, react-refresh) for a maintainable codebase.

πŸ› οΈ Tech Stack

Layer Technology
UI Framework React 18
Build Tool Vite 5
Styling Bootstrap 5 + Bootstrap Icons
PWA vite-plugin-pwa
Linting ESLint with React plugins
Language JavaScript (ES Modules)
Deployment Vercel

πŸš€ Getting Started

Prerequisites

Before you begin, make sure you have the following installed:

  • Node.js v18.0.0 or higher β€” Download here
  • npm v9.0.0 or higher (comes with Node.js)

Verify your versions:

node --version   # Should be >= 18.0.0
npm --version    # Should be >= 9.0.0

No API keys or environment variables are required. The app is fully data-driven from local files.

Installation

1. Clone the repository

git clone https://github.com/markpawl/Events.git
cd Events

2. Install dependencies

npm install

3. Start the development server

npm run dev

The app will be available at http://localhost:5173.


πŸ’» Usage

Development

npm run dev          # Start the Vite dev server with HMR

Production Build

npm run build        # Compile and bundle for production
npm run preview      # Preview the production build locally

Linting

npm run lint         # Run ESLint across all JS/JSX files

PWA Asset Generation

npm run generate-pwa-assets   # Generate all PWA icons from public/logo.svg

Adding Content

The project's core strength is its contributor-friendly data layer. To add a new artist or event:

  1. Navigate to src/artists/ or src/songs/
  2. Copy an existing entry file as your template
  3. Fill in the fields following the established schema
  4. The new content will appear in the app automatically β€” no UI changes needed
// Example: src/artists/new-artist.js (follow the existing template structure)
export const artist = {
  id: "artist-slug",
  name: "Artist Name",
  genre: "Genre",
  // ...other fields per the template
};

πŸ—ΊοΈ Roadmap

The project is actively evolving. Here's what's planned:

  • Search & Filter β€” Full-text search across events, artists, and setlists
  • User Favorites β€” LocalStorage-based system to bookmark events and artists
  • Dynamic Routing β€” Dedicated detail pages for each artist and event (React Router)
  • Dark Mode β€” System-preference-aware theme toggle
  • GitHub Actions CI β€” Automated lint + build checks on every pull request
  • Full i18n β€” Complete German/English language toggle using react-i18next
  • CMS Integration β€” Optional headless CMS (e.g., Contentlayer or Sanity) for teams who prefer a visual editor

Have an idea? Open a feature request β†’


🀝 Contributing

Contributions make open source such a great place to learn, inspire, and create β€” and this project is designed with contributors in mind. Whether you're adding a new artist entry, fixing a bug, or proposing a new feature, all contributions are warmly welcome.

How to contribute:

  1. Fork the repository
  2. Create your feature branch: git checkout -b feature/your-feature-name
  3. Commit your changes: git commit -m 'feat: add some feature'
  4. Push to the branch: git push origin feature/your-feature-name
  5. Open a Pull Request

For content-only contributions (new artists, events, or songs), you don't need deep React knowledge β€” just follow the templates in src/artists/ and src/songs/.

Please read the Contributor Guidelines before submitting a PR. (Coming soon)


πŸ“„ License

Distributed under the MIT License. See LICENSE for more information.


πŸ™ Acknowledgements


Made with ❀️ by markpawl

⬆ Back to top

About

Music performance event app

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Contributors