feat: Implement user authentication and database migration system

- Refactored AuthService to use UserRepository for user authentication.
- Added .env file for environment configuration.
- Created migration system with Migrator and ConnectionFactory classes.
- Added database migration files for creating users table.
- Implemented settings controller for managing database migrations.
- Developed user repository for user data handling.
- Created users controller for user management interface.
- Added frontend standards and migration documentation.
- Introduced reusable UI components and jQuery alerts module.
This commit is contained in:
2026-02-21 17:51:34 +01:00
parent 92bbe82614
commit b67542d159
35 changed files with 2733 additions and 213 deletions

View File

@@ -1,14 +1,6 @@
@use "shared/ui-components";
:root {
--c-primary: #6690f4;
--c-primary-dark: #3164db;
--c-bg: #f4f6f9;
--c-surface: #ffffff;
--c-text: #4e5e6a;
--c-text-strong: #2d3748;
--c-border: #e2e8f0;
--c-muted: #718096;
--c-danger: #cc0000;
--focus-ring: 0 0 0 3px rgba(102, 144, 244, 0.15);
--shadow-card: 0 20px 50px rgba(22, 34, 58, 0.14);
}
@@ -105,18 +97,11 @@ h1 {
color: var(--c-muted);
}
.alert-error {
.login-alert {
margin-bottom: 18px;
padding: 12px 14px;
border-radius: 8px;
border: 1px solid #fed7d7;
background: #fff5f5;
color: var(--c-danger);
font-size: 13px;
min-height: 44px;
}
.alert-error-placeholder {
.login-alert-placeholder {
opacity: 0.56;
}
@@ -136,56 +121,20 @@ h1 {
font-weight: 600;
}
input[type="email"],
input[type="password"] {
width: 100%;
height: 46px;
border: 2px solid var(--c-border);
border-radius: 8px;
.login-form .form-control {
min-height: 46px;
padding: 0 14px;
font: inherit;
color: var(--c-text-strong);
background: #ffffff;
transition: border-color 0.2s ease, box-shadow 0.2s ease;
border-width: 2px;
}
input[type="email"]::placeholder,
input[type="password"]::placeholder {
.login-form .form-control::placeholder {
color: #cbd5e0;
}
input[type="email"]:focus,
input[type="password"]:focus {
outline: none;
border-color: var(--c-primary);
box-shadow: var(--focus-ring);
}
.submit-btn {
.login-submit {
margin-top: 2px;
height: 48px;
border: 0;
border-radius: 8px;
font: inherit;
font-size: 15px;
font-weight: 600;
color: #ffffff;
background: var(--c-primary);
cursor: pointer;
transition: background-color 0.2s ease, transform 0.1s ease;
}
.submit-btn:hover {
background: var(--c-primary-dark);
}
.submit-btn:active {
transform: translateY(1px);
}
.submit-btn:focus-visible {
outline: none;
box-shadow: var(--focus-ring);
min-height: 48px;
}
@keyframes card-enter {