diff --git a/apps/api/eslint.config.mjs b/apps/api/eslint.config.mjs deleted file mode 100644 index b7f6277..0000000 --- a/apps/api/eslint.config.mjs +++ /dev/null @@ -1,3 +0,0 @@ -import baseConfig from '../../eslint.config.mjs'; - -export default [...baseConfig]; diff --git a/apps/api/project.json b/apps/api/project.json deleted file mode 100644 index 5280e5e..0000000 --- a/apps/api/project.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "name": "api", - "$schema": "../../node_modules/nx/schemas/project-schema.json", - "sourceRoot": "apps/api/src", - "projectType": "application", - "tags": [], - "targets": { - "build": { - "executor": "nx:run-commands", - "options": { - "command": "webpack-cli build", - "args": ["--node-env=production"], - "cwd": "apps/api" - }, - "configurations": { - "development": { - "args": ["--node-env=development"] - } - } - }, - "prune-lockfile": { - "dependsOn": ["build"], - "cache": true, - "executor": "@nx/js:prune-lockfile", - "outputs": [ - "{workspaceRoot}/dist/apps/api/package.json", - "{workspaceRoot}/dist/apps/api/package-lock.json" - ], - "options": { - "buildTarget": "build" - } - }, - "copy-workspace-modules": { - "dependsOn": ["build"], - "cache": true, - "outputs": ["{workspaceRoot}/dist/apps/api/workspace_modules"], - "executor": "@nx/js:copy-workspace-modules", - "options": { - "buildTarget": "build" - } - }, - "prune": { - "dependsOn": ["prune-lockfile", "copy-workspace-modules"], - "executor": "nx:noop" - }, - "serve": { - "continuous": true, - "executor": "@nx/js:node", - "defaultConfiguration": "development", - "dependsOn": ["build"], - "options": { - "buildTarget": "api:build", - "runBuildTargetDependencies": false - }, - "configurations": { - "development": { - "buildTarget": "api:build:development" - }, - "production": { - "buildTarget": "api:build:production" - } - } - } - } -} diff --git a/apps/api/src/app/app.controller.ts b/apps/api/src/app/app.controller.ts deleted file mode 100644 index aa4a3dd..0000000 --- a/apps/api/src/app/app.controller.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Controller, Get } from '@nestjs/common'; -import { AppService } from './app.service'; - -@Controller() -export class AppController { - constructor(private readonly appService: AppService) {} - - @Get() - getData() { - return this.appService.getData(); - } -} diff --git a/apps/api/src/app/app.module.ts b/apps/api/src/app/app.module.ts deleted file mode 100644 index 8662803..0000000 --- a/apps/api/src/app/app.module.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Module } from '@nestjs/common'; -import { AppController } from './app.controller'; -import { AppService } from './app.service'; - -@Module({ - imports: [], - controllers: [AppController], - providers: [AppService], -}) -export class AppModule {} diff --git a/apps/api/src/app/app.service.ts b/apps/api/src/app/app.service.ts deleted file mode 100644 index cd8cede..0000000 --- a/apps/api/src/app/app.service.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { Injectable } from '@nestjs/common'; - -@Injectable() -export class AppService { - getData(): { message: string } { - return { message: 'Hello API' }; - } -} diff --git a/apps/api/src/main.ts b/apps/api/src/main.ts deleted file mode 100644 index edae96b..0000000 --- a/apps/api/src/main.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Logger } from '@nestjs/common'; -import { NestFactory } from '@nestjs/core'; -import { AppModule } from './app/app.module'; -import { join } from 'path'; -import * as express from 'express'; -import { Request, Response, NextFunction } from 'express'; - -async function bootstrap() { - const app = await NestFactory.create(AppModule); - - const globalPrefix = 'api'; - app.setGlobalPrefix(globalPrefix); - - const server = app.getHttpAdapter().getInstance(); - - const distPath = join(__dirname, '..', 'web'); - server.use(express.static(distPath)); - - server.use((req: Request, res: Response, next: NextFunction) => { - if (!req.path.startsWith(`/${globalPrefix}`)) { - res.sendFile(join(distPath, 'index.html')); - } else { - next(); - } - }); - - const port = process.env.PORT || 3000; - await app.listen(port); - - Logger.log( - `🚀 Application is running on: http://localhost:${port}/ (API prefix: /${globalPrefix})` - ); -} - -bootstrap(); diff --git a/apps/api/tsconfig.app.json b/apps/api/tsconfig.app.json deleted file mode 100644 index e898dbc..0000000 --- a/apps/api/tsconfig.app.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/out-tsc", - "module": "commonjs", - "types": ["node"], - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "target": "es2021" - }, - "include": ["src/**/*.ts"] -} diff --git a/apps/api/tsconfig.json b/apps/api/tsconfig.json deleted file mode 100644 index 3685ac7..0000000 --- a/apps/api/tsconfig.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "files": [], - "include": [], - "references": [ - { - "path": "./tsconfig.app.json" - } - ], - "compilerOptions": { - "esModuleInterop": true - } -} diff --git a/apps/api/webpack.config.js b/apps/api/webpack.config.js deleted file mode 100644 index 1a3848e..0000000 --- a/apps/api/webpack.config.js +++ /dev/null @@ -1,25 +0,0 @@ -const { NxAppWebpackPlugin } = require('@nx/webpack/app-plugin'); -const { join } = require('path'); - -module.exports = { - output: { - path: join(__dirname, '../../dist/apps/api'), - clean: true, - ...(process.env.NODE_ENV !== 'production' && { - devtoolModuleFilenameTemplate: '[absolute-resource-path]', - }), - }, - plugins: [ - new NxAppWebpackPlugin({ - target: 'node', - compiler: 'tsc', - main: './src/main.ts', - tsConfig: './tsconfig.app.json', - assets: ['./src/assets'], - optimization: false, - outputHashing: 'none', - generatePackageJson: true, - sourceMaps: true, - }), - ], -}; diff --git a/apps/api/src/assets/.gitkeep b/apps/domains/__init__.py similarity index 100% rename from apps/api/src/assets/.gitkeep rename to apps/domains/__init__.py diff --git a/apps/domains/admin.py b/apps/domains/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/apps/domains/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/apps/domains/apps.py b/apps/domains/apps.py new file mode 100644 index 0000000..1eed278 --- /dev/null +++ b/apps/domains/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class DomainsConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'domains' diff --git a/apps/domains/migrations/__init__.py b/apps/domains/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/apps/domains/models.py b/apps/domains/models.py new file mode 100644 index 0000000..71a8362 --- /dev/null +++ b/apps/domains/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/apps/domains/tests.py b/apps/domains/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/apps/domains/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/apps/domains/views.py b/apps/domains/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/apps/domains/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/apps/users/__init__.py b/apps/users/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/apps/users/admin.py b/apps/users/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/apps/users/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/apps/users/apps.py b/apps/users/apps.py new file mode 100644 index 0000000..2bb189c --- /dev/null +++ b/apps/users/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class UsersConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'apps.users' diff --git a/apps/users/migrations/__init__.py b/apps/users/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/apps/users/models.py b/apps/users/models.py new file mode 100644 index 0000000..71a8362 --- /dev/null +++ b/apps/users/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/apps/users/tests.py b/apps/users/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/apps/users/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/apps/users/views.py b/apps/users/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/apps/users/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/apps/web/eslint.config.mjs b/apps/web/eslint.config.mjs deleted file mode 100644 index 9a9b5da..0000000 --- a/apps/web/eslint.config.mjs +++ /dev/null @@ -1,21 +0,0 @@ -import vue from 'eslint-plugin-vue'; -import baseConfig from '../../eslint.config.mjs'; - -export default [ - ...baseConfig, - ...vue.configs['flat/recommended'], - { - files: ['**/*.vue'], - languageOptions: { - parserOptions: { - parser: await import('@typescript-eslint/parser'), - }, - }, - }, - { - files: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx', '**/*.vue'], - rules: { - 'vue/multi-word-component-names': 'off', - }, - }, -]; diff --git a/apps/web/src/app/App.vue b/apps/web/src/app/App.vue deleted file mode 100644 index 6c00741..0000000 --- a/apps/web/src/app/App.vue +++ /dev/null @@ -1,93 +0,0 @@ - - - - - diff --git a/apps/web/src/main.ts b/apps/web/src/main.ts deleted file mode 100644 index 70e0fa8..0000000 --- a/apps/web/src/main.ts +++ /dev/null @@ -1,8 +0,0 @@ -import './styles.css'; -import router from './router'; -import { createApp } from 'vue'; -import App from './app/App.vue'; - -const app = createApp(App); -app.use(router); -app.mount('#root'); diff --git a/apps/web/src/router/index.ts b/apps/web/src/router/index.ts deleted file mode 100644 index f4b2afd..0000000 --- a/apps/web/src/router/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { createRouter, createWebHistory } from 'vue-router'; -import HomeView from '../views/HomeView.vue'; - -const router = createRouter({ - history: createWebHistory(import.meta.env.BASE_URL), - routes: [ - { - path: '/', - name: 'home', - component: HomeView, - }, - { - path: '/about', - name: 'about', - // route level code-splitting - // this generates a separate chunk (About.[hash].js) for this route - // which is lazy-loaded when the route is visited. - component: () => import('../views/AboutView.vue'), - }, - ], -}); - -export default router; diff --git a/apps/web/src/styles.css b/apps/web/src/styles.css deleted file mode 100644 index 22b4e6a..0000000 --- a/apps/web/src/styles.css +++ /dev/null @@ -1,41 +0,0 @@ -html { - -webkit-text-size-adjust: 100%; - font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, - 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, - 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; - line-height: 1.5; - tab-size: 4; - scroll-behavior: smooth; -} -body { - font-family: inherit; - line-height: inherit; - margin: 0; -} -h1, -h2, -p, -pre { - margin: 0; -} -*, -::before, -::after { - box-sizing: border-box; - border-width: 0; - border-style: solid; - border-color: currentColor; -} -h1, -h2 { - font-size: inherit; - font-weight: inherit; -} -a { - color: inherit; - text-decoration: inherit; -} -pre { - font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, - 'Liberation Mono', 'Courier New', monospace; -} diff --git a/apps/web/src/views/AboutView.vue b/apps/web/src/views/AboutView.vue deleted file mode 100644 index 0fb2cc0..0000000 --- a/apps/web/src/views/AboutView.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - diff --git a/apps/web/src/views/HomeView.vue b/apps/web/src/views/HomeView.vue deleted file mode 100644 index b54b496..0000000 --- a/apps/web/src/views/HomeView.vue +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/apps/web/src/vue-shims.d.ts b/apps/web/src/vue-shims.d.ts deleted file mode 100644 index 798e8fc..0000000 --- a/apps/web/src/vue-shims.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare module '*.vue' { - import { defineComponent } from 'vue'; - const component: ReturnType; - export default component; -} diff --git a/eslint.config.mjs b/eslint.config.mjs index a93fead..b3573c7 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,46 +1,53 @@ +import vue from 'eslint-plugin-vue'; import nx from '@nx/eslint-plugin'; export default [ - ...nx.configs['flat/base'], - ...nx.configs['flat/typescript'], - ...nx.configs['flat/javascript'], - { - ignores: [ - '**/dist', - '**/vite.config.*.timestamp*', - '**/vitest.config.*.timestamp*', - ], - }, - { - files: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx', '**/*.vue'], - rules: { - '@nx/enforce-module-boundaries': [ - 'error', - { - enforceBuildableLibDependency: true, - allow: ['^.*/eslint(\\.base)?\\.config\\.[cm]?[jt]s$'], - depConstraints: [ - { - sourceTag: '*', - onlyDependOnLibsWithTags: ['*'], - }, - ], - }, - ], + ...vue.configs['flat/recommended'], + ...nx.configs['flat/base'], + ...nx.configs['flat/typescript'], + ...nx.configs['flat/javascript'], + { + ignores: [ + '**/dist', + '**/vite.config.*.timestamp*', + '**/vitest.config.*.timestamp*' + ] }, - }, - { - files: [ - '**/*.ts', - '**/*.tsx', - '**/*.cts', - '**/*.mts', - '**/*.js', - '**/*.jsx', - '**/*.cjs', - '**/*.mjs', - ], - // Override or add rules here - rules: {}, - }, + { + files: ['**/*.vue'], + languageOptions: { + parserOptions: { + parser: await import('@typescript-eslint/parser'), + } + } + }, + { + files: [ + '**/*.ts', + '**/*.tsx', + '**/*.cts', + '**/*.mts', + '**/*.js', + '**/*.jsx', + '**/*.cjs', + '**/*.mjs', + '**/*.vue' + ], + rules: { + 'vue/multi-word-component-names': 'off', + '@nx/enforce-module-boundaries': [ + 'error', + { + enforceBuildableLibDependency: true, + allow: ['^.*/eslint(\\.base)?\\.config\\.[cm]?[jt]s$'], + depConstraints: [ + { + sourceTag: '*', + onlyDependOnLibsWithTags: ['*'] + } + ] + } + ] + } + } ]; diff --git a/apps/web/index.html b/index.html similarity index 100% rename from apps/web/index.html rename to index.html diff --git a/manage.py b/manage.py new file mode 100644 index 0000000..8e7ac79 --- /dev/null +++ b/manage.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + """Run administrative tasks.""" + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/apps/web/project.json b/project.json similarity index 100% rename from apps/web/project.json rename to project.json diff --git a/apps/web/tsconfig.app.json b/tsconfig.app.json similarity index 100% rename from apps/web/tsconfig.app.json rename to tsconfig.app.json diff --git a/apps/web/tsconfig.json b/tsconfig.json similarity index 90% rename from apps/web/tsconfig.json rename to tsconfig.json index 4bdd0cc..9fa66fa 100644 --- a/apps/web/tsconfig.json +++ b/tsconfig.json @@ -16,5 +16,5 @@ "path": "./tsconfig.app.json" } ], - "extends": "../../tsconfig.base.json" + "extends": "../tsconfig.base.json" } diff --git a/apps/web/vite.config.ts b/vite.config.ts similarity index 100% rename from apps/web/vite.config.ts rename to vite.config.ts