Add configuration files and update project documentation

- Introduced .editorconfig for consistent coding styles across the project.
- Added .golangci.yml for Go linting configuration.
- Updated AGENTS.md to clarify project structure and components.
- Enhanced CONTRIBUTING.md with Makefile usage for common tasks.
- Updated Dockerfiles to use Go 1.24 and improved build instructions.
- Refined README.md and deployment documentation for clarity.
- Added testing documentation in testing.md for backend and frontend tests.
- Introduced Makefile for streamlined development commands and tasks.
This commit is contained in:
2026-03-01 01:51:47 +03:00
parent 0466ff3087
commit 6529d7370e
92 changed files with 13411 additions and 8438 deletions

View File

@@ -24,7 +24,7 @@
class="flex items-center justify-between gap-3 w-full p-3 rounded-lg bg-base-300/50 hover:bg-base-300/70 transition-colors"
>
<div class="flex items-center gap-2 min-w-0">
<div class="avatar placeholder">
<div class="avatar avatar-placeholder">
<div class="bg-neutral text-neutral-content rounded-full w-8">
<span class="text-xs">{{ u[0]?.toUpperCase() }}</span>
</div>
@@ -57,7 +57,7 @@
<tr><th>ID</th><th>Name</th><th>Hidden</th><th>Priority</th><th class="text-right"></th></tr>
</thead>
<tbody>
<tr v-for="map in maps" :key="map.ID" class="hover">
<tr v-for="map in maps" :key="map.ID" class="hover:bg-base-300">
<td>{{ map.ID }}</td>
<td>{{ map.Name }}</td>
<td>{{ map.Hidden ? 'Yes' : 'No' }}</td>
@@ -84,25 +84,25 @@
Settings
</h2>
<div class="flex flex-col gap-4">
<div class="form-control w-full max-w-xs">
<fieldset class="fieldset w-full max-w-xs">
<label class="label" for="admin-settings-prefix">Prefix</label>
<input
id="admin-settings-prefix"
v-model="settings.prefix"
type="text"
class="input input-bordered input-sm w-full"
class="input input-sm w-full"
/>
</div>
<div class="form-control w-full max-w-xs">
</fieldset>
<fieldset class="fieldset w-full max-w-xs">
<label class="label" for="admin-settings-title">Title</label>
<input
id="admin-settings-title"
v-model="settings.title"
type="text"
class="input input-bordered input-sm w-full"
class="input input-sm w-full"
/>
</div>
<div class="form-control">
</fieldset>
<fieldset class="fieldset">
<label class="label gap-2 cursor-pointer justify-start" for="admin-settings-default-hide">
<input
id="admin-settings-default-hide"
@@ -112,7 +112,7 @@
/>
Default hide new maps
</label>
</div>
</fieldset>
</div>
<div class="flex justify-end mt-2">
<button class="btn btn-primary btn-sm" :disabled="savingSettings" @click="saveSettings">

View File

@@ -3,22 +3,22 @@
<h1 class="text-2xl font-bold mb-6">Edit map {{ id }}</h1>
<form v-if="map" @submit.prevent="submit" class="flex flex-col gap-4">
<div class="form-control">
<fieldset class="fieldset">
<label class="label" for="name">Name</label>
<input id="name" v-model="form.name" type="text" class="input input-bordered" required />
</div>
<div class="form-control">
<input id="name" v-model="form.name" type="text" class="input" required />
</fieldset>
<fieldset class="fieldset">
<label class="label cursor-pointer gap-2">
<input v-model="form.hidden" type="checkbox" class="checkbox" />
<span class="label-text">Hidden</span>
<span>Hidden</span>
</label>
</div>
<div class="form-control">
</fieldset>
<fieldset class="fieldset">
<label class="label cursor-pointer gap-2">
<input v-model="form.priority" type="checkbox" class="checkbox" />
<span class="label-text">Priority</span>
<span>Priority</span>
</label>
</div>
</fieldset>
<p v-if="error" class="text-error text-sm">{{ error }}</p>
<div class="flex gap-2">
<button type="submit" class="btn btn-primary" :disabled="loading">

View File

@@ -3,31 +3,31 @@
<h1 class="text-2xl font-bold mb-6">{{ isNew ? 'New user' : `Edit ${username}` }}</h1>
<form @submit.prevent="submit" class="flex flex-col gap-4">
<div class="form-control">
<fieldset class="fieldset">
<label class="label" for="user">Username</label>
<input
id="user"
v-model="form.user"
type="text"
class="input input-bordered"
class="input"
required
:readonly="!isNew"
/>
</div>
</fieldset>
<PasswordInput
v-model="form.pass"
label="Password (leave blank to keep)"
autocomplete="new-password"
/>
<div class="form-control">
<fieldset class="fieldset">
<label class="label">Auths</label>
<div class="flex flex-wrap gap-2">
<label v-for="a of authOptions" :key="a" class="label cursor-pointer gap-2" :for="`auth-${a}`">
<input :id="`auth-${a}`" v-model="form.auths" type="checkbox" :value="a" class="checkbox checkbox-sm" />
<span class="label-text">{{ a }}</span>
<span>{{ a }}</span>
</label>
</div>
</div>
</fieldset>
<p v-if="error" class="text-error text-sm">{{ error }}</p>
<div class="flex gap-2">
<button type="submit" class="btn btn-primary" :disabled="loading">