# 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