├── dc ├── ClientApp ├── src │ ├── vite-env.d.ts │ ├── objects │ │ └── errorVariants.ts │ ├── main.tsx │ ├── components │ │ ├── waves │ │ │ └── simpleWave.tsx │ │ ├── SearchBarPlaceholder.tsx │ │ ├── SearchBar.tsx │ │ ├── BusinessCard.tsx │ │ ├── divButton.tsx │ │ ├── MainAlert.tsx │ │ └── pageElements │ │ │ ├── SideNavigation.tsx │ │ │ ├── Navigation.tsx │ │ │ └── SearchPanel.tsx │ ├── App.tsx │ ├── ApiConst │ │ ├── ApiResponse.ts │ │ └── ApiUrls.ts │ ├── pages │ │ ├── dashboard │ │ │ ├── DashboardPage.tsx │ │ │ └── RestaurantsPage.tsx │ │ ├── RestaurantPage.tsx │ │ ├── LoginPage.tsx │ │ ├── MainPage.tsx │ │ └── RegisterPage.tsx │ ├── Routes.tsx │ ├── contexts │ │ └── AuthContext.tsx │ └── assets │ │ └── styles │ │ ├── mobile.scss │ │ ├── singleElements.scss │ │ └── index.scss ├── vite.config.ts ├── tsconfig.node.json ├── .eslintrc.cjs ├── index.html ├── tsconfig.json ├── ClientApp.esproj └── package.json ├── TableSpotServer ├── Models │ ├── IdListModel.cs │ ├── AccountTypeModel.cs │ ├── AddEmployeeModel.cs │ ├── EmployeeResponseModel.cs │ ├── LoginModel.cs │ ├── ModifyRestaurantModel.cs │ ├── AddToMenuModel.cs │ ├── RestaurantResponseModel.cs │ ├── CreateEmployeeModel.cs │ ├── AppDbContext.cs │ ├── CreateAccountModel.cs │ └── CreateRestaurantModel.cs ├── Interfaces │ ├── IPasswordService.cs │ ├── IMenuRepositoryService.cs │ ├── IHttpResponseJsonService.cs │ ├── IAccountRepositoryService.cs │ ├── IEmployeeRepositoryService.cs │ └── IRestaurantRepositoryService.cs ├── utils │ └── Regexes.cs ├── appsettings.Development.json ├── appsettings.json ├── Controllers │ ├── OrderController.cs │ ├── TableController.cs │ ├── CategoryController.cs │ ├── MenuController.cs │ ├── AuthController.cs │ ├── EmployeeController.cs │ ├── AccountController.cs │ └── RestaurantController.cs ├── Dto │ ├── CategoryDto.cs │ ├── OrderDto.cs │ ├── OrderElementDto.cs │ ├── EmployeeDto.cs │ ├── MenuDto.cs │ ├── AccountDto.cs │ └── RestaurantDto.cs ├── Services │ ├── PasswordService.cs │ ├── HttpResponseJsonService.cs │ ├── MenuRepositoryService.cs │ ├── EmployeeRepositoryService.cs │ ├── AccountRepositoryService.cs │ ├── AuthService.cs │ └── RestaurantRepositoryService.cs ├── Attributes │ └── RAuthorizationAttribute.cs ├── Properties │ └── launchSettings.json ├── TableSpot.csproj └── Program.cs ├── .gitignore ├── LICENSE ├── TableSpot.sln └── README.md /dc: -------------------------------------------------------------------------------- 1 | daily commit 2 | -------------------------------------------------------------------------------- /ClientApp/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /TableSpotServer/Models/IdListModel.cs: -------------------------------------------------------------------------------- 1 | namespace TableSpot.Models; 2 | 3 | public class IdListModel 4 | { 5 | 6 | public List? Ids { get; set; } 7 | } -------------------------------------------------------------------------------- /ClientApp/src/objects/errorVariants.ts: -------------------------------------------------------------------------------- 1 | export const ErrorVariants = { 2 | warning: "warning", 3 | success: "success", 4 | info: "info", 5 | error: "error" 6 | } -------------------------------------------------------------------------------- /TableSpotServer/Models/AccountTypeModel.cs: -------------------------------------------------------------------------------- 1 | namespace TableSpot.Models; 2 | 3 | public enum AccountTypeModel 4 | { 5 | Admin = 4, 6 | RestaurantOwner = 3, 7 | Employee = 2, 8 | Customer = 1 9 | } -------------------------------------------------------------------------------- /TableSpotServer/Models/AddEmployeeModel.cs: -------------------------------------------------------------------------------- 1 | namespace TableSpot.Models; 2 | 3 | public class AddEmployeeModel 4 | { 5 | public int AccountId { get; set; } 6 | public int RestaurantId { get; set; } 7 | } -------------------------------------------------------------------------------- /TableSpotServer/Interfaces/IPasswordService.cs: -------------------------------------------------------------------------------- 1 | namespace TableSpot.Interfaces; 2 | 3 | public interface IPasswordService 4 | { 5 | public bool VerifyPassword(string password, string hash); 6 | public string HashPassword(string password); 7 | } -------------------------------------------------------------------------------- /TableSpotServer/utils/Regexes.cs: -------------------------------------------------------------------------------- 1 | using System.Text.RegularExpressions; 2 | 3 | namespace TableSpot.Utils; 4 | 5 | public static partial class Regexes 6 | { 7 | [GeneratedRegex(@"^\d+$")] 8 | public static partial Regex CheckIfNumber(); 9 | } -------------------------------------------------------------------------------- /ClientApp/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | import tsconfigPaths from "vite-tsconfig-paths"; 4 | 5 | // https://vitejs.dev/config/ 6 | export default defineConfig({ 7 | plugins: [react(), tsconfigPaths()], 8 | }) 9 | -------------------------------------------------------------------------------- /TableSpotServer/Models/EmployeeResponseModel.cs: -------------------------------------------------------------------------------- 1 | namespace TableSpot.Models; 2 | 3 | public class EmployeeResponseModel 4 | { 5 | public string Name { get; set; } = null!; 6 | public string Surname { get; set; } = null!; 7 | public string Email { get; set; } = null!; 8 | } -------------------------------------------------------------------------------- /ClientApp/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "skipLibCheck": true, 5 | "module": "ESNext", 6 | "moduleResolution": "bundler", 7 | "allowSyntheticDefaultImports": true, 8 | "strict": true, 9 | }, 10 | "include": ["vite.config.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /TableSpotServer/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "ConnectionStrings": { 9 | "MySqlConnection": "Server=127.0.0.1;User=root;Password=;Database=TableSpot" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /TableSpotServer/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Kestrel": { 3 | "EndPoints": { 4 | "Http": { 5 | "Url": "http://*:5000" 6 | } 7 | } 8 | 9 | }, 10 | "Logging": { 11 | "LogLevel": { 12 | "Default": "Information", 13 | "Microsoft.AspNetCore": "Warning" 14 | } 15 | }, 16 | "AllowedHosts": "*" 17 | } 18 | -------------------------------------------------------------------------------- /TableSpotServer/Interfaces/IMenuRepositoryService.cs: -------------------------------------------------------------------------------- 1 | using TableSpot.Dto; 2 | using TableSpot.Models; 3 | 4 | namespace TableSpot.Interfaces; 5 | 6 | public interface IMenuRepositoryService 7 | { 8 | public Task> GetMenuForRestaurant(int id, int limit, int offset); 9 | public Task AddToMenu(int restaurantId, AddToMenuModel menu); 10 | 11 | } -------------------------------------------------------------------------------- /TableSpotServer/Controllers/OrderController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using TableSpot.Attributes; 3 | using TableSpot.Models; 4 | 5 | namespace TableSpot.Controllers; 6 | [ApiController] 7 | [Route("Api/[controller]")] 8 | [RAuthorization(AccountTypeModel.Employee)] 9 | public class OrderController : ControllerBase 10 | { 11 | //TODO: Implement OrderController 12 | } -------------------------------------------------------------------------------- /TableSpotServer/Dto/CategoryDto.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | using System.ComponentModel.DataAnnotations.Schema; 3 | 4 | namespace TableSpot.Dto; 5 | 6 | public class CategoryDto 7 | { 8 | [Key] public int Id { get; set; } 9 | [Required] public string Name { get; set; } = null!; 10 | public ICollection Restaurants { get; set; } = null!; 11 | } -------------------------------------------------------------------------------- /ClientApp/src/main.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom/client' 3 | import App from './App.tsx' 4 | import './assets/styles/index.scss' 5 | import './assets/styles/singleElements.scss' 6 | import './assets/styles/mobile.scss' 7 | 8 | ReactDOM.createRoot(document.getElementById('root')!).render( 9 | 10 | 11 | , 12 | ) 13 | -------------------------------------------------------------------------------- /TableSpotServer/Dto/OrderDto.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations.Schema; 2 | 3 | namespace TableSpot.Dto; 4 | 5 | public class OrderDto 6 | { 7 | public int Id { get; set; } 8 | [ForeignKey("Restaurant")] 9 | public int RestaurantId { get; set; } 10 | public RestaurantDto Restaurant { get; set; } = null!; 11 | public ICollection OrderElement { get; set; } = null!; 12 | } -------------------------------------------------------------------------------- /TableSpotServer/Models/LoginModel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace TableSpot.Models; 4 | 5 | public class LoginModel 6 | { 7 | [Required] 8 | [StringLength(64, MinimumLength = 3)] 9 | [EmailAddress] 10 | public string Email { get; set; } = null!; 11 | 12 | [Required] 13 | [StringLength(64, MinimumLength = 8)] 14 | public string Password { get; set; } = null!; 15 | 16 | } -------------------------------------------------------------------------------- /TableSpotServer/Interfaces/IHttpResponseJsonService.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using Microsoft.AspNetCore.Mvc; 3 | 4 | namespace TableSpot.Interfaces; 5 | 6 | public interface IHttpResponseJsonService 7 | { 8 | public object Ok(object data); 9 | public object BadRequest(List details = null!); 10 | public object NotFound(string message = "Not found"); 11 | public object Unauthorized(List details = null!); 12 | } -------------------------------------------------------------------------------- /ClientApp/src/components/waves/simpleWave.tsx: -------------------------------------------------------------------------------- 1 | const SimpleWave = () => { 2 | return ( 3 | 4 | 6 | 7 | ) 8 | } 9 | 10 | export default SimpleWave; -------------------------------------------------------------------------------- /TableSpotServer/Models/ModifyRestaurantModel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace TableSpot.Models; 4 | 5 | public class ModifyRestaurantModel 6 | { 7 | public string NewValue { get; set; } = null!; 8 | [AllowedValues(["name", "address", "description", "imageUrl", "categoryId", "email", "website", "phoneNumber"], ErrorMessage = "Invalid field."), Required(ErrorMessage = "Field is required.")] 9 | public string Field { get; set; } = null!; 10 | } -------------------------------------------------------------------------------- /TableSpotServer/Controllers/TableController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using TableSpot.Attributes; 3 | using TableSpot.Models; 4 | 5 | namespace TableSpot.Controllers; 6 | 7 | [ApiController] 8 | [Route("Api/[controller]")] 9 | [RAuthorization(AccountTypeModel.Employee)] 10 | public class TableController : ControllerBase 11 | { 12 | //TODO: Implement TableController 13 | [HttpGet("Test")] 14 | public IActionResult Test () 15 | { 16 | return Ok("Test"); 17 | } 18 | } -------------------------------------------------------------------------------- /TableSpotServer/Dto/OrderElementDto.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations.Schema; 2 | 3 | namespace TableSpot.Dto; 4 | 5 | public class OrderElementDto 6 | { 7 | public int Id { get; set; } 8 | [ForeignKey("Order")] 9 | public int OrderId { get; set; } 10 | public OrderDto Order { get; set; } = null!; 11 | public int Quantity { get; set; } 12 | [ForeignKey("MenuItem")] 13 | public int MenuItemId { get; set; } 14 | public MenuDto MenuItem { get; set; } = null!; 15 | } -------------------------------------------------------------------------------- /TableSpotServer/Interfaces/IAccountRepositoryService.cs: -------------------------------------------------------------------------------- 1 | using TableSpot.Dto; 2 | 3 | namespace TableSpot.Interfaces; 4 | 5 | public interface IAccountRepositoryService 6 | { 7 | public Task GetAccount(string email); 8 | public Task GetAccount(int id); 9 | public Task CreateAccount(AccountDto model); 10 | public Task AccountExists(string email); 11 | public Task AccountExistsById(int id); 12 | public Task EmployeeExist(int id); 13 | 14 | } -------------------------------------------------------------------------------- /ClientApp/src/components/SearchBarPlaceholder.tsx: -------------------------------------------------------------------------------- 1 | import SearchIcon from '@mui/icons-material/Search'; 2 | 3 | type Props = { 4 | onClick?: () => void; 5 | 6 | } 7 | 8 | const SearchBarPlaceholder = (props: Props) => { 9 | return ( 10 | <> 11 |
12 | 13 |
Search for a business
14 |
15 | 16 | ) 17 | } 18 | 19 | export default SearchBarPlaceholder; -------------------------------------------------------------------------------- /ClientApp/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { browser: true, es2020: true }, 4 | extends: [ 5 | 'eslint:recommended', 6 | 'plugin:@typescript-eslint/recommended', 7 | 'plugin:react-hooks/recommended', 8 | ], 9 | ignorePatterns: ['dist', '.eslintrc.cjs'], 10 | parser: '@typescript-eslint/parser', 11 | plugins: ['react-refresh'], 12 | rules: { 13 | 'react-refresh/only-export-components': [ 14 | 'warn', 15 | { allowConstantExport: true }, 16 | ], 17 | }, 18 | } 19 | -------------------------------------------------------------------------------- /ClientApp/src/App.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import {BrowserRouter} from "react-router-dom"; 3 | import Routes from "./Routes.tsx"; 4 | import {AuthProvider} from "./contexts/AuthContext.tsx"; 5 | import Navigation from "./components/pageElements/Navigation.tsx"; 6 | 7 | const App : React.FC = () => { 8 | return ( 9 | 10 | 11 | 12 | 13 | 14 | 15 | ) 16 | } 17 | 18 | export default App 19 | -------------------------------------------------------------------------------- /TableSpotServer/Interfaces/IEmployeeRepositoryService.cs: -------------------------------------------------------------------------------- 1 | using TableSpot.Dto; 2 | 3 | namespace TableSpot.Interfaces; 4 | 5 | public interface IEmployeeRepositoryService 6 | { 7 | public bool CheckIfEmployeeExists(int accountId); 8 | public bool CheckIfEmployeeBelongsToRestaurant(int accountId, int restaurantId); 9 | public Task> GetAllEmployeesFromRestaurant(int restaurantId, int limit, int offset); 10 | public Task AddEmployeeToRestaurant(int restaurantId, int accountId); 11 | 12 | 13 | } -------------------------------------------------------------------------------- /TableSpotServer/Dto/EmployeeDto.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | using System.ComponentModel.DataAnnotations.Schema; 3 | 4 | namespace TableSpot.Dto; 5 | 6 | public class EmployeeDto 7 | { 8 | [Key] 9 | public int Id { get; set; } 10 | [ForeignKey("Account")] 11 | public int AccountId { get; set; } 12 | public AccountDto Account { get; set; } = null!; 13 | 14 | [ForeignKey("Restaurant")] 15 | public int RestaurantId { get; set; } 16 | public RestaurantDto Restaurant { get; set; } = null!; 17 | 18 | } -------------------------------------------------------------------------------- /TableSpotServer/Models/AddToMenuModel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace TableSpot.Models; 4 | 5 | public class AddToMenuModel 6 | { 7 | public int RestaurantId { get; set; } 8 | [StringLength(64, MinimumLength = 3)] 9 | public string Name { get; set; } = null!; 10 | [StringLength(124, MinimumLength = 3)] 11 | public string Description { get; set; } = null!; 12 | [Range(0, 9999)] 13 | public decimal Price { get; set; } 14 | [Url] 15 | public string? ImageUrl { get; set; } 16 | 17 | } -------------------------------------------------------------------------------- /TableSpotServer/Models/RestaurantResponseModel.cs: -------------------------------------------------------------------------------- 1 | namespace TableSpot.Models; 2 | 3 | public class RestaurantResponseModel 4 | { 5 | public int Id { get; set; } 6 | public string Name { get; set; } = null!; 7 | public string Address { get; set; } = null!; 8 | public string Description { get; set; } = null!; 9 | public string ImageUrl { get; set; } = null!; 10 | public object Category { get; set; } = null!; 11 | public string? Email { get; set; } 12 | public string? Website { get; set; } 13 | public string? PhoneNumber { get; set; } 14 | } -------------------------------------------------------------------------------- /TableSpotServer/Models/CreateEmployeeModel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace TableSpot.Models; 4 | 5 | public class CreateEmployeeModel 6 | { 7 | [Required] 8 | public int RestaurantId { get; set; } 9 | [Required, EmailAddress, StringLength(64, MinimumLength = 3)] 10 | public string Email { get; set; } = null!; 11 | [Required, StringLength(64, MinimumLength = 3)] 12 | public string Name { get; set; } = null!; 13 | [Required, StringLength(64, MinimumLength = 3)] 14 | public string Surname { get; set; } = null!; 15 | } -------------------------------------------------------------------------------- /TableSpotServer/Dto/MenuDto.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | using System.ComponentModel.DataAnnotations.Schema; 3 | 4 | namespace TableSpot.Dto; 5 | 6 | public class MenuDto 7 | { 8 | [Key] 9 | public int Id { get; set; } 10 | [ForeignKey("Restaurant")] 11 | public int RestaurantId { get; set; } 12 | public RestaurantDto Restaurant { get; set; } = null!; 13 | public string Name { get; set; } = null!; 14 | public string Description { get; set; } = null!; 15 | public decimal Price { get; set; } 16 | public string? ImageUrl { get; set; } 17 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Editor directories and files 2 | .vscode/* 3 | !.vscode/extensions.json 4 | .idea 5 | riderModule.iml 6 | /_ReSharper.Caches/ 7 | .DS_Store 8 | *.suo 9 | *.ntvs* 10 | *.njsproj 11 | *.sln 12 | *.sw? 13 | *.exe 14 | 15 | # Csharp proj 16 | TableSpotServer/bin/ 17 | TableSpotServer/obj/ 18 | TableSpotServer/Migrations/ 19 | /packages/ 20 | 21 | # Logs 22 | ClientApp/logs 23 | *.log 24 | npm-debug.log* 25 | yarn-debug.log* 26 | yarn-error.log* 27 | pnpm-debug.log* 28 | lerna-debug.log* 29 | 30 | # ClientApp 31 | ClientApp/node_modules 32 | ClientApp/dist 33 | ClientApp/dist-ssr 34 | *.local 35 | -------------------------------------------------------------------------------- /ClientApp/src/components/SearchBar.tsx: -------------------------------------------------------------------------------- 1 | import SearchIcon from '@mui/icons-material/Search'; 2 | import React from "react"; 3 | 4 | type Props = { 5 | onClick?: () => void; 6 | onChange?: React.ChangeEventHandler 7 | autoFocus?: boolean; 8 | } 9 | 10 | const SearchBar = (props: Props) => { 11 | return ( 12 | <> 13 |
14 | 15 | 16 |
17 | 18 | 19 | ) 20 | } 21 | 22 | export default SearchBar; -------------------------------------------------------------------------------- /TableSpotServer/Dto/AccountDto.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace TableSpot.Dto; 4 | 5 | public class AccountDto 6 | { 7 | [Required, Key] 8 | public int Id { get; set; } 9 | [Required] 10 | public string Email { get; set; } = null!; 11 | [Required] 12 | public string Password { get; set; } = null!; 13 | [Required] 14 | public string Name { get; set; } = null!; 15 | [Required] 16 | public string Surname { get; set; } = null!; 17 | [Required] 18 | public int AccountTypeId { get; set; } 19 | 20 | 21 | public ICollection Restaurants { get; set; } = null!; 22 | } -------------------------------------------------------------------------------- /TableSpotServer/Models/AppDbContext.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.EntityFrameworkCore; 2 | using TableSpot.Dto; 3 | 4 | namespace TableSpot.Models; 5 | 6 | public class AppDbContext(DbContextOptions options) : DbContext(options) 7 | { 8 | public DbSet Restaurants { get; set; } = null!; 9 | public DbSet Categories { get; set; } = null!; 10 | public DbSet Accounts { get; set; } = null!; 11 | public DbSet Menus { get; set; } = null!; 12 | public DbSet Orders { get; set; } = null!; 13 | public DbSet OrderElements { get; set; } = null!; 14 | public DbSet Employees { get; set; } = null!; 15 | }; -------------------------------------------------------------------------------- /ClientApp/src/components/BusinessCard.tsx: -------------------------------------------------------------------------------- 1 | import SimpleWave from "components/waves/simpleWave.tsx"; 2 | import {Restaurant} from "ApiConst/ApiResponse.ts"; 3 | 4 | type Props = { 5 | restaurant: Restaurant 6 | } 7 | const BusinessCard = (props: Props) => { 8 | return ( 9 |
10 |
11 | 12 |
{props.restaurant.name}
13 |
{props.restaurant.category.name}
14 |
★★★★
15 |
16 | ); 17 | } 18 | 19 | export default BusinessCard; -------------------------------------------------------------------------------- /ClientApp/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | TableSpot 11 | 12 | 13 |
14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /ClientApp/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "useDefineForClassFields": true, 5 | "lib": ["ES2020", "DOM", "DOM.Iterable"], 6 | "module": "ESNext", 7 | "skipLibCheck": true, 8 | 9 | /* Bundler mode */ 10 | "moduleResolution": "bundler", 11 | "allowImportingTsExtensions": true, 12 | "resolveJsonModule": true, 13 | "isolatedModules": true, 14 | "noEmit": true, 15 | "jsx": "react-jsx", 16 | 17 | /* Linting */ 18 | "strict": true, 19 | "noUnusedLocals": true, 20 | "noUnusedParameters": true, 21 | "noFallthroughCasesInSwitch": true, 22 | 23 | /* Mapping */ 24 | "baseUrl": "src", 25 | }, 26 | "include": ["src"], 27 | "references": [{ "path": "./tsconfig.node.json" }] 28 | } 29 | -------------------------------------------------------------------------------- /ClientApp/ClientApp.esproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | npm run dev 4 | src\ 5 | Jest 6 | 7 | false 8 | 9 | $(MSBuildProjectDirectory)\dist 10 | 11 | 12 |