Files
2026-03-30 23:22:55 -05:00

88 lines
1.8 KiB
Markdown

# GD FEDL
A lightweight Geometry Dash FEDL-style website with a built-in Node.js server and browser-based list manager.
It includes:
- a home page
- a list page for ranked level videos
- a manage page for editing the list in the browser
- a players page
- a rules page
- a Node.js server with a JSON API
## Project Files
- `index.html` - home page
- `lists.html` - main list view
- `manage.html` - browser UI for adding, editing, and deleting list entries
- `players.html` - player manager
- `rules.html` - submission rules and mod guidelines
- `app.js` - client-side logic for the list and players pages
- `styles.css` - site styling
- `server.js` - Node.js server and API
- `data.json` - primary list storage generated by the server
- `data.txt` - compatibility export rewritten by the server
- `package.json` - start script for the Node server
## How The List Data Works
The site now serves list data through `GET /api/levels`.
The server stores entries in `data.json` and also keeps `data.txt` updated automatically for compatibility.
Legacy `data.txt` lines still use this format:
```txt
category|position|title|url
```
Example:
```txt
new|1|Flamewall|https://youtu.be/x4Io4zkWVRw
```
## Running The Site
Start the Node server:
```bash
npm start
```
Then open:
```txt
http://localhost:8000
```
## Editing The List
Open:
```txt
http://localhost:8000/manage.html
```
From there you can:
- add entries
- edit existing entries
- delete entries
- search the current list
The server also exposes these API routes:
- `GET /api/levels`
- `POST /api/levels`
- `PUT /api/levels/:id`
- `DELETE /api/levels/:id`
## Notes
- On first run, the server will migrate the current `data.txt` into `data.json`
- Player data is stored in the browser with `localStorage`
- The players list is local to each browser/device
- No external npm packages are required