feat: Add DatabaseManager and LinkPlayer components, implement authentication and linking logic

- Created DatabaseManager component for managing database access via phpMyAdmin.
- Developed LinkPlayer component to link Discord accounts with game characters, including user authentication and error handling.
- Added mock data files for players, organizations, and projects to handle backend unavailability.
- Implemented AuthService for managing user authentication and session checks.
- Created DatabaseService to fetch and manage player, organization, and project data with fallback to mock data.
- Added HTML page for handling authentication unavailability.
- Developed a test script for validating Docker setup and required files.
This commit is contained in:
Lars Behrends
2025-12-28 16:46:04 +01:00
parent 6abdffe22a
commit d3d7ec46e6
40 changed files with 5967 additions and 102 deletions

14
public/mock/orgs.json Normal file
View File

@@ -0,0 +1,14 @@
[
{
"id": 1,
"name": "Mock Organization",
"description": "This is a mock organization that appears when the backend is unavailable.",
"leader": "DrKButz",
"members": ["8984c0b5-d912-4462-b189-c864fba4a1af"],
"gallery": [],
"cityStats": {
"influence": 50,
"reputation": 75
}
}
]

37
public/mock/players.json Normal file
View File

@@ -0,0 +1,37 @@
[
{
"uuid": "8984c0b5-d912-4462-b189-c864fba4a1af",
"name": "DrKButz",
"discordId": "mock_discord_id",
"storyMarkdown": "# Mock Player Story\n\nThis is a mock player story that appears when the backend is unavailable.",
"tags": ["admin", "developer"],
"stats": {
"health": 100,
"armor": 50,
"money": 10000
},
"inventory": [
{"id": "weapon_pistol", "name": "Pistol", "quantity": 1},
{"id": "item_medkit", "name": "Medkit", "quantity": 3}
],
"isOnline": false,
"lastSeen": "2025-01-01T12:00:00Z"
},
{
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"name": "TestPlayer",
"discordId": null,
"storyMarkdown": "# Test Player\n\nThis is a test player for mock data purposes.",
"tags": ["player"],
"stats": {
"health": 80,
"armor": 30,
"money": 5000
},
"inventory": [
{"id": "item_food", "name": "Food", "quantity": 5}
],
"isOnline": true,
"lastSeen": "2025-01-01T10:00:00Z"
}
]

13
public/mock/projects.json Normal file
View File

@@ -0,0 +1,13 @@
[
{
"id": 1,
"name": "Mock Project",
"description": "This is a mock project that appears when the backend is unavailable.",
"leader": "DrKButz",
"employees": ["8984c0b5-d912-4462-b189-c864fba4a1af"],
"shopCatalog": [],
"gallery": [],
"hiring": false,
"status": "active"
}
]