Monorepo
12
.idea/metr.iml
generated
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/backend/app" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/backend/tests" isTestSource="true" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/backend/storage" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
14
.idea/webResources.xml
generated
Normal file
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="WebResourcesPaths">
|
||||
<contentEntries>
|
||||
<entry url="file://$PROJECT_DIR$">
|
||||
<entryData>
|
||||
<resourceRoots>
|
||||
<path value="file://$PROJECT_DIR$/backend/resources" />
|
||||
</resourceRoots>
|
||||
</entryData>
|
||||
</entry>
|
||||
</contentEntries>
|
||||
</component>
|
||||
</project>
|
||||
219
.idea/workspace.xml
generated
Normal file
@@ -0,0 +1,219 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="c4514c3f-b59d-443f-8151-439baad1fc96" name="Changes" comment="">
|
||||
<change beforePath="$PROJECT_DIR$/.editorconfig" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.env.example" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.gitattributes" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.gitignore" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.styleci.yml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Actions/Fortify/CreateNewUser.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Actions/Fortify/PasswordValidationRules.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Actions/Fortify/ResetUserPassword.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Actions/Fortify/UpdateUserPassword.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Actions/Fortify/UpdateUserProfileInformation.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Console/Kernel.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Exceptions/Handler.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/Controller.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Http/Kernel.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Http/Middleware/Authenticate.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Http/Middleware/EncryptCookies.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Http/Middleware/PreventRequestsDuringMaintenance.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Http/Middleware/RedirectIfAuthenticated.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Http/Middleware/TrimStrings.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Http/Middleware/TrustHosts.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Http/Middleware/TrustProxies.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Http/Middleware/VerifyCsrfToken.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Models/User.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Providers/AppServiceProvider.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Providers/AuthServiceProvider.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Providers/BroadcastServiceProvider.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Providers/EventServiceProvider.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Providers/FortifyServiceProvider.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Providers/RouteServiceProvider.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/artisan" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/bootstrap/app.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/bootstrap/cache/.gitignore" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/composer.json" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/composer.lock" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/config/app.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/config/auth.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/config/broadcasting.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/config/cache.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/config/cors.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/config/database.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/config/filesystems.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/config/fortify.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/config/hashing.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/config/logging.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/config/mail.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/config/queue.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/config/sanctum.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/config/services.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/config/session.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/config/view.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/database/.gitignore" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/database/factories/UserFactory.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/database/migrations/2014_10_12_000000_create_users_table.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/database/migrations/2014_10_12_100000_create_password_resets_table.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/database/migrations/2014_10_12_200000_add_two_factor_columns_to_users_table.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/database/migrations/2019_08_19_000000_create_failed_jobs_table.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/database/seeders/DatabaseSeeder.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/docker-compose.yml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/docker/7.4/Dockerfile" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/docker/7.4/php.ini" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/docker/7.4/start-container" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/docker/7.4/supervisord.conf" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/docker/8.0/Dockerfile" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/docker/8.0/php.ini" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/docker/8.0/start-container" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/docker/8.0/supervisord.conf" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/docker/8.1/Dockerfile" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/docker/8.1/php.ini" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/docker/8.1/start-container" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/docker/8.1/supervisord.conf" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/lang/en/auth.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/lang/en/pagination.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/lang/en/passwords.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/lang/en/validation.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/package.json" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/phpunit.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/.htaccess" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/css/app.css" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/favicon.ico" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/images/intro.jpg" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/images/metr.svg" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/images/video.jpg" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/index.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/js/app.js" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/js/login.js" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/js/main_page.js" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/js/signin.js" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/logo.svg" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/mix-manifest.json" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/robots.txt" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/css/app.css" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/css/auth.css" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/css/index.css" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/images/1.jpg" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/images/2jpg.jpg" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/images/3.jpg" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/images/4.jpg" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/images/5.jpg" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/images/6.jpg" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/images/image 3 (1).png" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/images/intro.jpg" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/images/location.png" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/images/metr.jpg" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/images/metr.svg" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/images/search.jpg" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/images/tell.jpg" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/images/user.jpg" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/images/video.jpg" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/js/app.js" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/js/bootstrap.js" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/js/login.js" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/js/main_page.js" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/js/signin.js" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/auth/login.blade.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/auth/register.blade.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/layouts/base.blade.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/main.blade.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/welcome.blade.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/routes/api.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/routes/channels.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/routes/console.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/routes/web.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/storage/app/.gitignore" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/storage/app/public/.gitignore" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/storage/framework/.gitignore" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/storage/framework/cache/.gitignore" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/storage/framework/cache/data/.gitignore" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/storage/framework/sessions/.gitignore" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/storage/framework/testing/.gitignore" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/storage/framework/views/.gitignore" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/storage/logs/.gitignore" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/tests/CreatesApplication.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/tests/Feature/ExampleTest.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/tests/TestCase.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/tests/Unit/ExampleTest.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/tmp/.github/workflows/release.yml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/tmp/.gitignore" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/tmp/assets/css/login.css" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/tmp/assets/css/signin.css" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/tmp/assets/css/style.css" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/tmp/fonts/Stapel/Stapel-Bold.ttf" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/tmp/fonts/Stapel/Stapel-Bold.woff" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/tmp/fonts/Stapel/Stapel-Bold.woff2" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/tmp/fonts/Stapel/stapel-semi-expanded-bold.otf" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/tmp/fonts/StapelS/Stapel-SemiExpandedBold.ttf" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/tmp/fonts/StapelS/Stapel-SemiExpandedBold.woff" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/tmp/fonts/StapelS/Stapel-SemiExpandedBold.woff2" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/tmp/fonts/StapelS/style.css" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/tmp/index.html" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/tmp/login.html" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/tmp/signin.html" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/webpack.mix.js" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/yarn.lock" beforeDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="ComposerSettings">
|
||||
<pharConfigPath>$PROJECT_DIR$/backend/composer.json</pharConfigPath>
|
||||
<execution />
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||
</component>
|
||||
<component name="ProjectId" id="29Z2xWLX6GmHX1PqytT9OyGn78F" />
|
||||
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
|
||||
<component name="ProjectViewState">
|
||||
<option name="hideEmptyMiddlePackages" value="true" />
|
||||
<option name="showLibraryContents" value="true" />
|
||||
</component>
|
||||
<component name="PropertiesComponent">
|
||||
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
|
||||
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
|
||||
<property name="WebServerToolWindowFactoryState" value="false" />
|
||||
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
|
||||
<property name="nodejs_package_manager_path" value="yarn" />
|
||||
<property name="vue.rearranger.settings.migration" value="true" />
|
||||
</component>
|
||||
<component name="RecentsManager">
|
||||
<key name="MoveFile.RECENT_KEYS">
|
||||
<recent name="\\wsl$\Ubuntu\var\www\metr\frontend" />
|
||||
<recent name="\\wsl$\Ubuntu\var\www\metr" />
|
||||
</key>
|
||||
</component>
|
||||
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
|
||||
<component name="TaskManager">
|
||||
<task active="true" id="Default" summary="Default task">
|
||||
<changelist id="c4514c3f-b59d-443f-8151-439baad1fc96" name="Changes" comment="" />
|
||||
<created>1653306533694</created>
|
||||
<option name="number" value="Default" />
|
||||
<option name="presentableId" value="Default" />
|
||||
<updated>1653306533694</updated>
|
||||
<workItem from="1653306534835" duration="541000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TypeScriptGeneratedFilesManager">
|
||||
<option name="version" value="3" />
|
||||
</component>
|
||||
<component name="Vcs.Log.Tabs.Properties">
|
||||
<option name="TAB_STATES">
|
||||
<map>
|
||||
<entry key="MAIN">
|
||||
<value>
|
||||
<State />
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
30
README.md
@@ -1,30 +0,0 @@
|
||||
# Metr
|
||||
|
||||
<p align="center">
|
||||
<a href="https://forma-web.ru">
|
||||
<img alt="Logo" src="public/logo.svg" width="300" title="Logo">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/robonen/metr-frontend/actions">
|
||||
<img src="https://github.com/robonen/metr-frontend/actions/workflows/release.yml/badge.svg" title="Release status">
|
||||
</a>
|
||||
<a href="https://github.com/robonen/metr-frontend/actions">
|
||||
<img src="https://github.com/robonen/metr-frontend/actions/workflows/test.yml/badge.svg" title="Lint status">
|
||||
</a>
|
||||
<a href="https://github.com/robonen/metr-frontend/releases">
|
||||
<img src="https://img.shields.io/github/v/release/robonen/metr-frontend?display_name=tag&label=Last%20Version&color=brightgreen" title="Last version">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
## Github Flow ⚠
|
||||
|
||||
Продакшен ветка - `master`
|
||||
|
||||
Ветка для разработки - `dev-x.x.x`
|
||||
|
||||
### Порядок работы с репозиторием
|
||||
- Создать ветку с версией dev-x.x.x
|
||||
- После окончания работы над версией и успешным прохождением тестов выполнить слияние с master веткой
|
||||
- Для создания нового релиза перейти в раздел Releases, заполнить описание версии и добавить тег
|
||||
28
frontend/.gitignore
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
lerna-debug.log*
|
||||
|
||||
node_modules
|
||||
.DS_Store
|
||||
dist
|
||||
dist-ssr
|
||||
coverage
|
||||
*.local
|
||||
|
||||
/cypress/videos/
|
||||
/cypress/screenshots/
|
||||
|
||||
# Editor directories and files
|
||||
.vscode/*
|
||||
!.vscode/extensions.json
|
||||
.idea
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.sw?
|
||||
29
frontend/README.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# metr
|
||||
|
||||
This template should help get you started developing with Vue 3 in Vite.
|
||||
|
||||
## Recommended IDE Setup
|
||||
|
||||
[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=johnsoncodehk.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=johnsoncodehk.vscode-typescript-vue-plugin).
|
||||
|
||||
## Customize configuration
|
||||
|
||||
See [Vite Configuration Reference](https://vitejs.dev/config/).
|
||||
|
||||
## Project Setup
|
||||
|
||||
```sh
|
||||
npm install
|
||||
```
|
||||
|
||||
### Compile and Hot-Reload for Development
|
||||
|
||||
```sh
|
||||
npm run dev
|
||||
```
|
||||
|
||||
### Compile and Minify for Production
|
||||
|
||||
```sh
|
||||
npm run build
|
||||
```
|
||||
16
frontend/index.html
Normal file
@@ -0,0 +1,16 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" href="/favicon.ico" />
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300&display=swap" rel="stylesheet">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Vite App</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
<script type="module" src="/src/main.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
1176
frontend/package-lock.json
generated
Normal file
17
frontend/package.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"name": "metr",
|
||||
"version": "0.0.0",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "vite build",
|
||||
"preview": "vite preview --port 5050"
|
||||
},
|
||||
"dependencies": {
|
||||
"vue": "^3.2.33",
|
||||
"vue-router": "^4.0.14"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vitejs/plugin-vue": "^2.3.1",
|
||||
"vite": "^2.9.5"
|
||||
}
|
||||
}
|
||||
BIN
frontend/public/favicon.ico
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
26
frontend/src/App.vue
Normal file
@@ -0,0 +1,26 @@
|
||||
<template>
|
||||
<RouterView />
|
||||
</template>
|
||||
<style >
|
||||
@import url("@/assets/fonts/StapelS/style.css");
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: 'Inter', sans-serif;
|
||||
background-color: rgba(124, 173, 201, 1);
|
||||
font-size: 17px;
|
||||
color: white;
|
||||
background: black;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
*,
|
||||
*:before,
|
||||
*:after {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
margin: 0;
|
||||
}
|
||||
</style>
|
||||
74
frontend/src/assets/base.css
Normal file
@@ -0,0 +1,74 @@
|
||||
/* color palette from <https://github.com/vuejs/theme> */
|
||||
:root {
|
||||
--vt-c-white: #ffffff;
|
||||
--vt-c-white-soft: #f8f8f8;
|
||||
--vt-c-white-mute: #f2f2f2;
|
||||
|
||||
--vt-c-black: #181818;
|
||||
--vt-c-black-soft: #222222;
|
||||
--vt-c-black-mute: #282828;
|
||||
|
||||
--vt-c-indigo: #2c3e50;
|
||||
|
||||
--vt-c-divider-light-1: rgba(60, 60, 60, 0.29);
|
||||
--vt-c-divider-light-2: rgba(60, 60, 60, 0.12);
|
||||
--vt-c-divider-dark-1: rgba(84, 84, 84, 0.65);
|
||||
--vt-c-divider-dark-2: rgba(84, 84, 84, 0.48);
|
||||
|
||||
--vt-c-text-light-1: var(--vt-c-indigo);
|
||||
--vt-c-text-light-2: rgba(60, 60, 60, 0.66);
|
||||
--vt-c-text-dark-1: var(--vt-c-white);
|
||||
--vt-c-text-dark-2: rgba(235, 235, 235, 0.64);
|
||||
}
|
||||
|
||||
/* semantic color variables for this project */
|
||||
:root {
|
||||
--color-background: var(--vt-c-white);
|
||||
--color-background-soft: var(--vt-c-white-soft);
|
||||
--color-background-mute: var(--vt-c-white-mute);
|
||||
|
||||
--color-border: var(--vt-c-divider-light-2);
|
||||
--color-border-hover: var(--vt-c-divider-light-1);
|
||||
|
||||
--color-heading: var(--vt-c-text-light-1);
|
||||
--color-text: var(--vt-c-text-light-1);
|
||||
|
||||
--section-gap: 160px;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--color-background: var(--vt-c-black);
|
||||
--color-background-soft: var(--vt-c-black-soft);
|
||||
--color-background-mute: var(--vt-c-black-mute);
|
||||
|
||||
--color-border: var(--vt-c-divider-dark-2);
|
||||
--color-border-hover: var(--vt-c-divider-dark-1);
|
||||
|
||||
--color-heading: var(--vt-c-text-dark-1);
|
||||
--color-text: var(--vt-c-text-dark-2);
|
||||
}
|
||||
}
|
||||
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
position: relative;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
body {
|
||||
min-height: 100vh;
|
||||
color: var(--color-text);
|
||||
background: var(--color-background);
|
||||
transition: color 0.5s, background-color 0.5s;
|
||||
line-height: 1.6;
|
||||
font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu,
|
||||
Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
|
||||
font-size: 15px;
|
||||
text-rendering: optimizeLegibility;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
@@ -1,26 +1,6 @@
|
||||
/* Fonts */
|
||||
|
||||
@import url("../../fonts/StapelS/style.css");
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: 'Inter', sans-serif;
|
||||
background-color: rgba(124, 173, 201, 1);
|
||||
font-size: 17px;
|
||||
color: white;
|
||||
background: black;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
*,
|
||||
*:before,
|
||||
*:after {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Main */
|
||||
.main {
|
||||
@@ -66,7 +46,7 @@ h1, h2, h3, h4, h5, h6 {
|
||||
height: 96px;
|
||||
margin: 0 auto;
|
||||
|
||||
background: url("../../../resources/images/metr.svg") center
|
||||
background: url("@/assets/images/metr.svg") center
|
||||
no-repeat;
|
||||
background-size: cover;
|
||||
border-right: 2px solid white;
|
||||
@@ -189,7 +169,7 @@ h1, h2, h3, h4, h5, h6 {
|
||||
padding-top: 250px;
|
||||
|
||||
background-image: linear-gradient(to top, rgb(124, 173, 201, 1), rgb(94, 196, 242, 0.3)), url(
|
||||
"../../../resources/images/intro.jpg");
|
||||
"@/assets/images/intro.jpg");
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
@@ -314,7 +294,7 @@ h1, h2, h3, h4, h5, h6 {
|
||||
height: 590px;
|
||||
border: 1px solid black;
|
||||
background-image: linear-gradient(to top, rgb(124, 173, 201, 0.6), rgb(94, 196, 242, 0.2)), url(
|
||||
"../../../resources/images/video.jpg");
|
||||
"@/assets/images/video.jpg");
|
||||
background-size: cover;
|
||||
|
||||
}
|
||||
@@ -1,22 +1,4 @@
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: 'Inter', sans-serif;
|
||||
background-color: rgba(124, 173, 201, 1);
|
||||
font-size: 17px;
|
||||
color: white;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
*,
|
||||
*:before,
|
||||
*:after {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
margin: 0;
|
||||
font-family: 'Montserrat', sans-serif;
|
||||
}
|
||||
|
||||
.container {
|
||||
width: 100%;
|
||||
@@ -24,7 +6,7 @@ h1, h2, h3, h4, h5, h6 {
|
||||
max-width: 1920px;
|
||||
margin: 0 auto;
|
||||
background-image: linear-gradient(to top, rgb(124, 173, 201, 0.2), rgb(124, 173, 201, 0.2)), url(
|
||||
"../../../resources/images/intro.jpg");
|
||||
"@/assets/images/intro.jpg");
|
||||
background-size: cover;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@@ -40,7 +22,7 @@ h1, h2, h3, h4, h5, h6 {
|
||||
.logoMetr {
|
||||
width: 185px;
|
||||
height: 100px;
|
||||
background: url("../../../resources/images/metr.svg") center
|
||||
background: url("@/assets/images/metr.svg") center
|
||||
no-repeat;
|
||||
background-size: cover;
|
||||
}
|
||||
BIN
frontend/src/assets/images/1.jpg
Normal file
|
After Width: | Height: | Size: 456 KiB |
BIN
frontend/src/assets/images/2jpg.jpg
Normal file
|
After Width: | Height: | Size: 139 KiB |
BIN
frontend/src/assets/images/3.jpg
Normal file
|
After Width: | Height: | Size: 902 KiB |
BIN
frontend/src/assets/images/4.jpg
Normal file
|
After Width: | Height: | Size: 262 KiB |
BIN
frontend/src/assets/images/5.jpg
Normal file
|
After Width: | Height: | Size: 115 KiB |
BIN
frontend/src/assets/images/6.jpg
Normal file
|
After Width: | Height: | Size: 141 KiB |
BIN
frontend/src/assets/images/image 3 (1).png
Normal file
|
After Width: | Height: | Size: 123 B |
BIN
frontend/src/assets/images/intro.jpg
Normal file
|
After Width: | Height: | Size: 461 KiB |
BIN
frontend/src/assets/images/location.png
Normal file
|
After Width: | Height: | Size: 262 B |
BIN
frontend/src/assets/images/metr.jpg
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
3
frontend/src/assets/images/metr.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg width="265" height="139" viewBox="0 0 265 139" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M264.708 0H0V139H264.708V0ZM127.614 71.5571V68.2211C127.614 63.7361 126.374 60.5113 123.894 58.5467C121.414 56.5822 117.656 55.5999 112.619 55.5999C107.201 55.5999 103.252 56.7119 100.772 58.9359C98.3295 61.1229 97.1085 64.9778 97.1085 70.5007C97.1085 75.8754 98.3486 79.6562 100.829 81.8431C103.309 83.993 107.258 85.0679 112.676 85.0679C117.56 85.0679 121.204 84.2525 123.608 82.6215C126.012 80.9906 127.347 78.1921 127.614 74.2259H117.999C117.732 76.7094 115.958 77.9511 112.676 77.9511C110.692 77.9511 109.204 77.4693 108.212 76.5055C107.258 75.5418 106.762 73.9294 106.724 71.6683V71.5571H127.614ZM106.724 68.6659V68.2211C106.8 66.2195 107.334 64.811 108.326 63.9955C109.318 63.143 110.73 62.7167 112.562 62.7167C114.355 62.7167 115.691 63.1801 116.568 64.1067C117.484 64.9963 117.942 66.5161 117.942 68.6659H106.724ZM62.2136 69.4999L70.1691 77.5619L78.1247 69.4999V84.2339H87.3966V56.4339H79.7272L70.1691 66.9423L60.611 56.4339H52.9416V84.2339H62.2136V69.4999ZM134.941 56.4339H162.871V63.5507H153.714V84.2339H144.098V63.5507H134.941V56.4339ZM181.922 78.5071C183.067 82.881 186.138 85.0679 191.137 85.0679C195.029 85.0679 197.89 84.0115 199.722 81.8987C201.553 79.7489 202.469 75.931 202.469 70.4451C202.469 64.9222 201.553 61.0673 199.722 58.8803C197.89 56.6934 195.029 55.5999 191.137 55.5999C188.695 55.5999 186.672 56.1745 185.07 57.3235C183.505 58.4726 182.456 60.085 181.922 62.1607H180.949V56.4339H171.334V94.2419H180.949V78.5071H181.922ZM180.949 67.7207C181.064 64.3847 182.971 62.7167 186.672 62.7167C189.038 62.7167 190.66 63.2357 191.537 64.2735C192.453 65.2743 192.911 67.3315 192.911 70.4451C192.911 73.4846 192.472 75.5047 191.595 76.5055C190.717 77.4693 189.076 77.9511 186.672 77.9511C182.857 77.9511 180.949 76.1905 180.949 72.6691V67.7207Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
BIN
frontend/src/assets/images/search.jpg
Normal file
|
After Width: | Height: | Size: 359 B |
BIN
frontend/src/assets/images/tell.jpg
Normal file
|
After Width: | Height: | Size: 456 B |
BIN
frontend/src/assets/images/user.jpg
Normal file
|
After Width: | Height: | Size: 444 B |
BIN
frontend/src/assets/images/video.jpg
Normal file
|
After Width: | Height: | Size: 556 KiB |
1
frontend/src/assets/logo.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 261.76 226.69" xmlns:v="https://vecta.io/nano"><path d="M161.096.001l-30.225 52.351L100.647.001H-.005l130.877 226.688L261.749.001z" fill="#41b883"/><path d="M161.096.001l-30.225 52.351L100.647.001H52.346l78.526 136.01L209.398.001z" fill="#34495e"/></svg>
|
||||
|
After Width: | Height: | Size: 308 B |
9
frontend/src/main.js
Normal file
@@ -0,0 +1,9 @@
|
||||
import { createApp } from 'vue'
|
||||
import App from './App.vue'
|
||||
import router from './router'
|
||||
|
||||
const app = createApp(App)
|
||||
|
||||
app.use(router)
|
||||
|
||||
app.mount('#app')
|
||||
21
frontend/src/router/index.js
Normal file
@@ -0,0 +1,21 @@
|
||||
import { createRouter, createWebHistory } from 'vue-router'
|
||||
import MainView from '@/views/MainView.vue'
|
||||
import AuthView from '@/views/AuthView.vue'
|
||||
|
||||
const router = createRouter({
|
||||
history: createWebHistory(import.meta.env.BASE_URL),
|
||||
routes: [
|
||||
{
|
||||
path: '/',
|
||||
name: 'home',
|
||||
component: MainView
|
||||
},
|
||||
{
|
||||
path: '/auth',
|
||||
name: 'auth',
|
||||
component: AuthView
|
||||
},
|
||||
]
|
||||
})
|
||||
|
||||
export default router
|
||||
44
frontend/src/views/AuthView.vue
Normal file
@@ -0,0 +1,44 @@
|
||||
<template>
|
||||
<div class="container">
|
||||
<div class="logo">
|
||||
<div class="logoMetr">
|
||||
</div>
|
||||
</div>
|
||||
<div class="title">
|
||||
<h2> {{authForm? "Вход" : "Регистрация" }} Метр</h2>
|
||||
</div>
|
||||
<form action="" method="get" class="form__example">
|
||||
<div class="form__example">
|
||||
<label for="name"></label>
|
||||
<input class="login" type="text" name="name" id="name" placeholder="Почта" required>
|
||||
</div>
|
||||
<div class="form__example">
|
||||
<label for="email"></label>
|
||||
<input class="login" type="email" name="email" id="email" placeholder="Пароль" required>
|
||||
</div>
|
||||
<div class="form__example">
|
||||
<button class="form__input">
|
||||
{{authForm? "Войти" : "Зарегистрироваться" }}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class="form__example">
|
||||
<button class="form__input" @click="authForm = false" v-if="authForm">
|
||||
Зарегистрироваться
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data () {
|
||||
return {authForm: true}
|
||||
}
|
||||
}
|
||||
</script>>
|
||||
|
||||
<style scoped>
|
||||
@import url("@/assets/css/signin.css");
|
||||
</style>
|
||||
@@ -1,29 +1,17 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300&display=swap" rel="stylesheet">
|
||||
<link rel="stylesheet" href="assets/css/style.css">
|
||||
<title>Metr</title>
|
||||
</head>
|
||||
<body>
|
||||
<template>
|
||||
<header class="header">
|
||||
<div class="container">
|
||||
<div class="header__table">
|
||||
<div class="header__image"></div>
|
||||
<div class="header__block">
|
||||
<div class="header__block__content">
|
||||
<img src="../resources/images/location.png" alt="">
|
||||
<img src="@/assets/images/location.png" alt="">
|
||||
<a class="nav__link_tomsk" href="#">Томск</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="header__block">
|
||||
<div class="header__block__contenttop">
|
||||
<a class="nav__link" href="#">каталог</a>
|
||||
<a class="nav__link" href="#" id="catalog">каталог</a>
|
||||
</div>
|
||||
<div class="header__block__contentdown">
|
||||
<a class="nav__link" href="#">блог</a>
|
||||
@@ -44,7 +32,7 @@
|
||||
</div>
|
||||
<div class="search__img">
|
||||
<a class="nav__link" href="#">
|
||||
<img src="../layout/assets/images/search.jpg" alt="">
|
||||
<img src="@/assets/images/search.jpg" alt="">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -52,13 +40,13 @@
|
||||
<div class="header__contacts">
|
||||
<div class="header__contacts__imgtop">
|
||||
<a class="nav__link" href="#">
|
||||
<img src="../layout/assets/images/tell.jpg" alt="">
|
||||
<img src="@/assets/images/tell.jpg" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="header__contacts__img">
|
||||
<a class="nav__link" href="#">
|
||||
<img src="../layout/assets/images/user.jpg" alt="">
|
||||
</a>
|
||||
<router-link to="/auth" class="nav__link" href="#" id="user">
|
||||
<img src="@/assets/images/user.jpg" alt="">
|
||||
</router-link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -106,27 +94,27 @@
|
||||
</div>
|
||||
<div class="suggestions__images">
|
||||
<div class="podlozhka">
|
||||
<div class="sugg__img"><a class="gradient" href="#"><img src="../layout/assets/images/1.jpg" alt=""></a></div>
|
||||
<div class="sugg__img"><a class="gradient" href="#"><img src="@/assets/images/1.jpg" alt=""></a></div>
|
||||
<div class="sugg__text"><p>Студия на Кирова, 12</p><h2>1298000₽</h2></div>
|
||||
</div>
|
||||
<div class="podlozhka">
|
||||
<div class="sugg__img"><a class="gradient" href="#"><img src="../layout/assets/images/1.jpg" alt=""></a></div>
|
||||
<div class="sugg__img"><a class="gradient" href="#"><img src="@/assets/images/1.jpg" alt=""></a></div>
|
||||
<div class="sugg__text"><p>Студия на Кирова, 12</p><h2>1298000₽</h2></div>
|
||||
</div>
|
||||
<div class="podlozhka">
|
||||
<div class="sugg__img"><a class="gradient" href="#"><img src="../layout/assets/images/3.jpg" alt=""></a></div>
|
||||
<div class="sugg__img"><a class="gradient" href="#"><img src="@/assets/images/3.jpg" alt=""></a></div>
|
||||
<div class="sugg__text"><p>Студия на Кирова, 12</p><h2>1298000₽</h2></div>
|
||||
</div>
|
||||
<div class="podlozhka">
|
||||
<div class="sugg__img"><a class="gradient" href="#"><img src="../layout/assets/images/4.jpg" alt=""></a></div>
|
||||
<div class="sugg__img"><a class="gradient" href="#"><img src="@/assets/images/4.jpg" alt=""></a></div>
|
||||
<div class="sugg__text"><p>Студия на Кирова, 12</p><h2>1298000₽</h2></div>
|
||||
</div>
|
||||
<div class="podlozhka">
|
||||
<div class="sugg__img"><a class="gradient" href="#"><img src="../layout/assets/images/6.jpg" alt=""></a></div>
|
||||
<div class="sugg__img"><a class="gradient" href="#"><img src="@/assets/images/6.jpg" alt=""></a></div>
|
||||
<div class="sugg__text"><p>Студия на Кирова, 12</p><h2>1298000₽</h2></div>
|
||||
</div>
|
||||
<div class="podlozhka">
|
||||
<div class="sugg__img"><a class="gradient" href="#"><img src="../layout/assets/images/6.jpg" alt=""></a></div>
|
||||
<div class="sugg__img"><a class="gradient" href="#"><img src="@/assets/images/6.jpg" alt=""></a></div>
|
||||
<div class="sugg__text"><p>Студия на Кирова, 12</p><h2>1298000₽</h2></div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -143,7 +131,7 @@
|
||||
</div>
|
||||
<div class="header__block">
|
||||
<div class="header__block__content">
|
||||
<img src="../resources/images/location.png" alt="">
|
||||
<img src="assets/images/location.png" alt="">
|
||||
<a class="nav__link_tomsk" href="#">Томск</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -177,5 +165,10 @@
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
@import url("@/assets/css/main.css");
|
||||
</style>
|
||||
|
||||
|
||||
14
frontend/vite.config.js
Normal file
@@ -0,0 +1,14 @@
|
||||
import { fileURLToPath, URL } from 'url'
|
||||
|
||||
import { defineConfig } from 'vite'
|
||||
import vue from '@vitejs/plugin-vue'
|
||||
|
||||
// https://vitejs.dev/config/
|
||||
export default defineConfig({
|
||||
plugins: [vue()],
|
||||
resolve: {
|
||||
alias: {
|
||||
'@': fileURLToPath(new URL('./src', import.meta.url))
|
||||
}
|
||||
}
|
||||
})
|
||||
40
tmp/.github/workflows/release.yml
vendored
@@ -1,40 +0,0 @@
|
||||
name: Release
|
||||
|
||||
on:
|
||||
|
||||
push:
|
||||
tags:
|
||||
- 'v*'
|
||||
|
||||
jobs:
|
||||
prepare:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Get the version
|
||||
id: get_version
|
||||
run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//}
|
||||
|
||||
- name: Deploy
|
||||
uses: appleboy/scp-action@master
|
||||
with:
|
||||
host: ${{ secrets.SSH_HOST }}
|
||||
username: ${{ secrets.SSH_USERNAME }}
|
||||
password: ${{ secrets.SSH_PASSWORD }}
|
||||
port: ${{ secrets.SSH_PORT }}
|
||||
rm: true
|
||||
strip_components: 1
|
||||
source: "."
|
||||
target: ${{ secrets.SERVER_DIR }}
|
||||
|
||||
- name: Notify
|
||||
uses: appleboy/telegram-action@master
|
||||
with:
|
||||
to: ${{ secrets.TELEGRAM_ID }}
|
||||
token: ${{ secrets.TELEGRAM_TOKEN }}
|
||||
format: markdown
|
||||
message: |
|
||||
✅ *${{ github.actor }} выпустил новый релиз: ${{ github.repository }}: ${{ steps.get_version.outputs.VERSION }}*:
|
||||
[Просмотреть релиз](https://forma-web.ru)
|
||||
1
tmp/.gitignore
vendored
@@ -1 +0,0 @@
|
||||
../.idea/
|
||||
@@ -1,92 +0,0 @@
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: 'Inter', sans-serif;
|
||||
background-color: rgba(124, 173, 201, 1);
|
||||
font-size: 17px;
|
||||
color: white;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
*,
|
||||
*:before,
|
||||
*:after {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
margin: 0;
|
||||
font-family: 'Montserrat', sans-serif;
|
||||
}
|
||||
|
||||
.container {
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
max-width: 1920px;
|
||||
margin: 0 auto;
|
||||
background-image: linear-gradient(to top, rgba(124, 173, 201, 0.2), rgba(124, 173, 201, 0.2)), url("../../../resources/images/intro.jpg");
|
||||
background-size: cover;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content:center;
|
||||
}
|
||||
|
||||
.logo {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.logoMetr {
|
||||
width: 185px;
|
||||
height: 100px;
|
||||
background: url("../../../resources/images/metr.svg") center no-repeat;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.title {
|
||||
margin: 1% 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.title h2{
|
||||
font-size: 35px;
|
||||
}
|
||||
|
||||
.form__example {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.form__input {
|
||||
margin-top: 30px;
|
||||
width: 320px;
|
||||
height: 40px;
|
||||
background-color: #1A89C9;
|
||||
color: white;
|
||||
font-family: 'Montserrat', sans-serif;
|
||||
font-size: 14px;
|
||||
border-radius: 10px;
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
.form__input:hover {
|
||||
color: rgb(15, 10, 41);
|
||||
font-weight: 600;
|
||||
transition: color .1s linear;
|
||||
}
|
||||
|
||||
.login {
|
||||
width: 320px;
|
||||
height: 50px;
|
||||
padding-left: 1%;
|
||||
}
|
||||
|
||||
input {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: rgb(129, 125, 125);
|
||||
font-family: 'Montserrat', sans-serif;
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" href="assets/css/login.css">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300&display=swap" rel="stylesheet">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300&family=Montserrat&display=swap" rel="stylesheet">
|
||||
<title>Metr</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="logo">
|
||||
<div class="logoMetr">
|
||||
</div>
|
||||
</div>
|
||||
<div class="title">
|
||||
<h2>Авторизируйтесь</h2>
|
||||
</div>
|
||||
<form action="" method="get" class="form__example">
|
||||
<div class="form__example">
|
||||
<label for="name"></label>
|
||||
<input class="login" type="text" name="name" id="name" placeholder="Имя" required>
|
||||
</div>
|
||||
<div class="form__example">
|
||||
<label for="email"></label>
|
||||
<input class="login" type="email" name="email" id="email" placeholder="Почта" required>
|
||||
</div>
|
||||
<div class="form__example">
|
||||
<input class="form__input" type="submit" value="Зарегистрироваться">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,38 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" href="assets/css/login.css">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300&display=swap" rel="stylesheet">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300&family=Montserrat&display=swap" rel="stylesheet">
|
||||
<title>Metr</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="logo">
|
||||
<div class="logoMetr">
|
||||
</div>
|
||||
</div>
|
||||
<div class="title">
|
||||
<h2>Вход Метр</h2>
|
||||
</div>
|
||||
<form action="" method="get" class="form__example">
|
||||
<div class="form__example">
|
||||
<label for="name"></label>
|
||||
<input class="login" type="text" name="name" id="name" placeholder="Имя" required>
|
||||
</div>
|
||||
<div class="form__example">
|
||||
<label for="email"></label>
|
||||
<input class="login" type="email" name="email" id="email" placeholder="Почта" required>
|
||||
</div>
|
||||
<div class="form__example">
|
||||
<input class="form__input" type="submit" value="Войти">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||