https://github.com/jamesread/lan-party-publishing-standard
A specification for publishing LAN parties in a JSON format, making events machine readable.
https://github.com/jamesread/lan-party-publishing-standard
Last synced: 4 months ago
JSON representation
A specification for publishing LAN parties in a JSON format, making events machine readable.
- Host: GitHub
- URL: https://github.com/jamesread/lan-party-publishing-standard
- Owner: jamesread
- License: agpl-3.0
- Created: 2024-07-04T15:43:11.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-04T15:51:30.000Z (almost 2 years ago)
- Last Synced: 2025-10-10T18:16:44.940Z (9 months ago)
- Homepage:
- Size: 15.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# lan-party-publishing-standard
This is repository that contains a specification for publishing LAN parties in a JSON format, making your events machine readable. The idea is that it can be used by syndication sites like https://lanlist.info without humans having to manually do anything!
## Examples & Reference Implementations
This repository only contains the text standard, and some example json files. You can use whatever you like to generate a JSON file that matches the standard, and validate your output against the JSON schema linked in this repository. However, it is much easier to generate the JSON file using a library;
* PHP: [lan-party-publisher-php](https://github.com/jamesread/lan-party-publisher-php) library
## Formal specification
The formal JSON Specification is here; [lan-party-publishing-standard-v1.schema](lan-party-publishing-standard-v1.schema). You should be able to validate your JSON output against this JSON schema file to test for bugs.
## Human readable specification documentation
The JSON structure is very simple;
* 1x [Organisation](#organisation)
* 1 - Many [Venue(s)](#venue)
* 1 - Many [Event(s)](#event)
* 0 - Many [Attendees](#attendee)
## Types
### Base
The base type, from which all types inherit, have the following attributes;
| Property Name | Description | Examples |
|---------------|-------------|----------|
| apiVersion | An API version to aid in future compatibility. | |
| apiType | One of the standard type names. | |
| name | A "friendly" name, like a title, or username. | |
| siteUniqueId | An ID that is unique in your database. | |
### Organisation
| Property Name | Description | Examples |
|---------------|-------------|----------|
| name | The name of your oranisation | `mylan` |
| siteUniqueId | An ID that is unique in your databse. | `mylan` |
| venues | The venues this organisation uses. | - |
### Venue
| Property Name | Description | Examples |
|---------------|-------------|----------|
| name | The name of your venue, normally a hall. | `My Village Hall` |
| siteUniqueId | An ID that is unique in your database. | `2` |
| gpsLatitude | Because the site works in multiple countries, a post code, or street name won't be enough to put your venue on the map. See http://getlatlng.com to find your venue lat/lng easily. | `2` |
| gpsLongditude | See above. | See above. |
| events | The events at this venue. | - |
### Event
| Property Name | Description | Examples |
|---------------|-------------|----------|
| name | The name of your event, normally a hall. | `Awesome Lan 001` |
| siteUniqueId | An ID that is unique in your database. | `1337` |
| start | The date the event starts. ISO 8601 format. | `2005-08-15T15:52:01+0000` |
| finish | The date the event finishes. ISO 8601 format. | `2005-08-15T15:52:01+0000` |
| attendees | An (optional) list of attendees. 8601 format. | Attendee array |
### Attendee (optional)
| Property Name | Description | Examples |
|---------------|-------------|----------|
| name | The name of your event, normally a hall. | `Awesome Lan 001` |
| siteUniqueId | An ID that is unique in your database. | `1337` |