Skip to content

Commit d71b845

Browse files
committed
refactor: revamp the entire project 🚀
1 parent 109b2ef commit d71b845

File tree

107 files changed

+4248
-2147
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

107 files changed

+4248
-2147
lines changed

.eslintignore

+8-46
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,8 @@
1-
#---------------------------------------#
2-
# Project Ignores #
3-
#---------------------------------------#
4-
5-
# Dependency directories
6-
node_modules
7-
package-lock.json
8-
9-
# Logs
10-
logs
11-
*.log
12-
npm-debug.log*
13-
yarn-debug.log*
14-
yarn-error.log*
15-
pnpm-debug.log*
16-
lerna-debug.log*
17-
18-
# Editor
19-
.vscode/*
20-
!.vscode/extensions.json
21-
.idea
22-
.DS_Store
23-
*.suo
24-
*.ntvs*
25-
*.njsproj
26-
*.sln
27-
*.sw?
28-
29-
# Distribution
30-
dist
31-
dist-ssr
32-
build
33-
public
34-
*.zip
35-
*.local
36-
37-
# Docmentation
38-
docs
39-
*.md
40-
41-
# Misc
42-
*.todo
43-
todo.*
44-
**/.git
45-
**/.svn
46-
**/.hg
1+
# Ignore everything
2+
/*
3+
4+
# Except these files
5+
!/src
6+
!/src/*
7+
!/tests
8+
!/tests/*

.eslintrc

+19-66
Original file line numberDiff line numberDiff line change
@@ -1,94 +1,47 @@
11
{
22
"root": true,
3-
"extends": ["eslint:recommended", "plugin:jsdoc/recommended", "plugin:import/recommended"],
4-
"plugins": ["jsdoc", "import"],
3+
"extends": ["eslint:recommended", "plugin:jsdoc/recommended", "plugin:import/recommended", "plugin:promise/recommended"],
4+
"parser": "@babel/eslint-parser",
5+
"plugins": ["jsdoc", "import", "promise"],
56
"env": {
7+
"es6": true,
68
"browser": true,
79
"node": true,
8-
"shared-node-browser": true,
9-
"es6": true,
10-
"mocha": true
10+
"shared-node-browser": true
1111
},
1212
"parserOptions": {
1313
"ecmaVersion": "latest",
1414
"sourceType": "module",
15-
"ecmaFeatures": {
16-
"impliedStrict": true,
17-
"modules": true,
18-
"classes": true,
19-
"jsx": true
20-
}
15+
"requireConfigFile": false
2116
},
2217
"rules": {
23-
"constructor-super": "error",
2418
"curly": ["error", "multi-line"],
25-
"getter-return": "error",
2619
"indent": ["error", 2, { "SwitchCase": 1, "MemberExpression": 1 }],
27-
"no-async-promise-executor": "error",
28-
"no-case-declarations": "error",
29-
"no-compare-neg-zero": "error",
30-
"no-cond-assign": "error",
31-
"no-console": ["error", { "allow": ["warn", "error"] }],
32-
"no-const-assign": "error",
33-
"no-dupe-args": "error",
34-
"no-dupe-class-members": "error",
35-
"no-dupe-else-if": "error",
36-
"no-dupe-keys": "error",
37-
"no-duplicate-case": "error",
38-
"no-extra-boolean-cast": "error",
39-
"no-extra-semi": "error",
40-
"no-func-assign": "error",
41-
"no-global-assign": "error",
42-
"no-import-assign": "error",
43-
"no-mixed-spaces-and-tabs": ["error", "smart-tabs"],
44-
"no-obj-calls": "error",
45-
"no-prototype-builtins": "error",
46-
"no-redeclare": "error",
47-
"no-setter-return": "error",
48-
"no-trailing-spaces": "off",
49-
"no-unreachable-loop": ["error", { "ignore": ["ForInStatement", "ForOfStatement"] }],
20+
"no-console": ["error", { "allow": ["info", "debug", "warn", "error"] }],
21+
"no-trailing-spaces": "warn",
22+
"no-unreachable-loop": "error",
5023
"no-unused-vars": "off",
5124
"no-var": "error",
52-
"prefer-const": "error",
25+
"prefer-const": "warn",
5326
"quotes": ["warn", "single"],
5427
"semi": ["error", "always"],
55-
"use-isnan": "error",
5628
"valid-typeof": ["error", { "requireStringLiterals": true }],
57-
"import/no-unresolved": "error",
5829
"jsdoc/check-access": "warn",
59-
"jsdoc/check-alignment": "warn",
6030
"jsdoc/check-indentation": "warn",
61-
"jsdoc/check-param-names": "warn",
62-
"jsdoc/check-property-names": "warn",
6331
"jsdoc/check-syntax": "warn",
6432
"jsdoc/check-tag-names": "off",
65-
"jsdoc/check-types": "warn",
66-
"jsdoc/check-values": "warn",
67-
"jsdoc/empty-tags": "warn",
68-
"jsdoc/implements-on-classes": "warn",
69-
"jsdoc/multiline-blocks": "warn",
70-
"jsdoc/newline-after-description": "off",
7133
"jsdoc/no-bad-blocks": "warn",
72-
"jsdoc/no-multi-asterisks": "warn",
73-
"jsdoc/no-undefined-types": "warn",
34+
"jsdoc/no-defaults": "off",
35+
"jsdoc/no-undefined-types": "off",
7436
"jsdoc/require-asterisk-prefix": "warn",
7537
"jsdoc/require-description": ["warn", { "descriptionStyle": "tag" }],
76-
"jsdoc/require-description-complete-sentence": ["warn", { "abbreviations": ["etc", "e.g.", "i.e."] }],
38+
"jsdoc/require-description-complete-sentence": ["warn",{ "abbreviations": ["etc", "e.g.", "i.e."] }],
7739
"jsdoc/require-hyphen-before-param-description": "warn",
7840
"jsdoc/require-jsdoc": "off",
79-
"jsdoc/require-param": "warn",
80-
"jsdoc/require-param-description": "warn",
81-
"jsdoc/require-param-name": "warn",
82-
"jsdoc/require-param-type": "warn",
83-
"jsdoc/require-property": "warn",
84-
"jsdoc/require-property-description": "warn",
85-
"jsdoc/require-property-name": "warn",
86-
"jsdoc/require-property-type": "warn",
87-
"jsdoc/require-returns": "warn",
88-
"jsdoc/require-returns-check": "off",
89-
"jsdoc/require-returns-description": "warn",
90-
"jsdoc/require-returns-type": "warn",
91-
"jsdoc/tag-lines": "warn",
92-
"jsdoc/valid-types": "error"
41+
"import/first": "warn",
42+
"import/newline-after-import":"warn",
43+
"import/no-empty-named-blocks": "warn",
44+
"promise/always-return": "off",
45+
"promise/catch-or-return": "off"
9346
}
94-
}
47+
}

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ pnpm-debug.log*
1919
lerna-debug.log*
2020

2121
# Editor
22-
.vscode/*
22+
.vscode
2323
!.vscode/extensions.json
2424
.idea
2525
.DS_Store

.prettierignore

+8-46
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,8 @@
1-
#---------------------------------------#
2-
# Project Ignores #
3-
#---------------------------------------#
4-
5-
# Dependency directories
6-
node_modules
7-
package-lock.json
8-
9-
# Logs
10-
logs
11-
*.log
12-
npm-debug.log*
13-
yarn-debug.log*
14-
yarn-error.log*
15-
pnpm-debug.log*
16-
lerna-debug.log*
17-
18-
# Editor
19-
.vscode/*
20-
!.vscode/extensions.json
21-
.idea
22-
.DS_Store
23-
*.suo
24-
*.ntvs*
25-
*.njsproj
26-
*.sln
27-
*.sw?
28-
29-
# Distribution
30-
dist
31-
dist-ssr
32-
build
33-
public
34-
*.zip
35-
*.local
36-
37-
# Docmentation
38-
docs
39-
*.md
40-
41-
# Misc
42-
*.todo
43-
todo.*
44-
**/.git
45-
**/.svn
46-
**/.hg
1+
# Ignore everything
2+
/*
3+
4+
# Except these files
5+
!/src
6+
!/src/*
7+
!/tests
8+
!/tests/*

.prettierrc

+7-12
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,11 @@
11
{
2-
"arrowParens": "avoid",
3-
"bracketSpacing": true,
4-
"htmlWhitespaceSensitivity": "css",
5-
"insertPragma": false,
62
"printWidth": 140,
7-
"proseWrap": "preserve",
8-
"quoteProps": "as-needed",
9-
"requirePragma": false,
10-
"semi": true,
11-
"singleQuote": true,
123
"tabWidth": 2,
13-
"trailingComma": "none",
144
"useTabs": false,
15-
"rangeStart": 0
16-
}
5+
"semi": true,
6+
"singleQuote": true,
7+
"quoteProps": "as-needed",
8+
"trailingComma": "es5",
9+
"bracketSpacing": true,
10+
"arrowParens": "avoid"
11+
}

LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@
186186
same "printed page" as the copyright notice for easier
187187
identification within third-party archives.
188188

189-
Copyright [2022] [Deyan "stambolievv" Stamboliev]
189+
Copyright [2023] [Deyan "stambolievv" Stamboliev]
190190

191191
Licensed under the Apache License, Version 2.0 (the "License");
192192
you may not use this file except in compliance with the License.

README.md

+113-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,113 @@
1-
# Car-Service
2-
🔧 Easy and convenient way to register cars and their repairs! 🔧
1+
# 🔧 Car-Service 🔧
2+
3+
<details>
4+
<summary><b>Table of Contents</b></summary>
5+
<ol>
6+
<li>
7+
<a href="#overview">Overview</a>
8+
<ul>
9+
<li><a href="#cars-management">Cars Management</a></li>
10+
<li><a href="#repairs-management">Repairs Management</a></li>
11+
</ul>
12+
</li>
13+
<li>
14+
<a href="#user-specific-access">User-specific Access</a>
15+
</li>
16+
<li>
17+
<a href="#features">Features</a>
18+
<ul>
19+
<li><a href="#search-functionality">Search Functionality</a></li>
20+
<li><a href="#pagination">Pagination</a></li>
21+
<li><a href="#cache-implementation">Cache Implementation</a></li>
22+
</ul>
23+
</li>
24+
<li>
25+
<a href="#getting-started">Getting Started</a>
26+
<ul>
27+
<li><a href="#clone-project">Clone Project</a></li>
28+
<li><a href="#installing">Installing</a></li>
29+
</ul>
30+
</li>
31+
<li>
32+
<a href="#deployment">Deployment</a>
33+
</li>
34+
<li>
35+
<a href="#license">License</a>
36+
</li>
37+
</ol>
38+
</details>
39+
40+
## Test Credentials
41+
To facilitate testing, you can use the following credentials:
42+
- **Username:** admin
43+
- **Password:** admin
44+
45+
**Note:** Please refrain from creating, editing, or deleting any information using these test credentials to maintain the integrity of the test environment.
46+
47+
48+
## Overview
49+
The Car-Service project is a robust web application designed for managing cars and their repairs. Users can log in or create an account, granting them exclusive access to their own set of cars and associated repairs.
50+
51+
![THUMBNAIL]
52+
53+
### Cars Management
54+
- **Adding Cars:**
55+
- VIN Number
56+
- Registration Plate Number
57+
- Make and/or Model
58+
- Engine Type
59+
- Customer Name
60+
61+
- **Operations on Cars:**
62+
- Create: Add new car with specified details.
63+
- Edit: Modify existing car information.
64+
- Delete: Remove a car from the system with all repairs associated with it.
65+
66+
### Repairs Management
67+
- **Viewing Repairs:**
68+
- Clicking on the repair button for a specific car opens a dedicated page displaying all repairs associated with that particular car.
69+
70+
- **Operations on Repairs:**
71+
- Create: Add new repairs, specifying details.
72+
- Details: Access a detailed page for each repair.
73+
- Edit: Modify existing repair information.
74+
- Delete: Remove repairs from the system.
75+
76+
## User-specific Access
77+
- Each user can only view and manage their own set of cars and repairs, ensuring data privacy.
78+
79+
## Features
80+
### Search Functionality
81+
- The Cars page features a search block allowing users to search for cars based on:
82+
83+
### Pagination
84+
- Dedicated pagination is implemented on both the Cars page and the Repairs page, providing users with easy navigation through large datasets.
85+
86+
### Cache Implementation
87+
- To enhance data fetching speed and ensure robust performance, the project incorporates a cache mechanism. This implementation optimizes data retrieval, providing a seamless and efficient user experience.
88+
89+
## Getting Started
90+
These instructions will get you a copy of the project up and running on your local machine for development. See deployment for notes on how to deploy the project on a live system.
91+
92+
### Clone project
93+
```bash
94+
git clone git@github.com:stambolievv/Car-Service.git
95+
```
96+
97+
### Installing
98+
Run `npm install` from the terminal
99+
100+
## Deployment
101+
Open the terminal and run the desired command
102+
103+
| Type | Terminal Command | Description |
104+
| :------------- | :---------------- | :----------------------------------------------------- |
105+
| dev | `npm run dev` | Run development server for live editing |
106+
| prod | `npm run build` | Build the project for production deployment |
107+
| prod + preview | `npm run preview` | Preview the production build locally before deployment |
108+
109+
## License
110+
This project is licensed under the Apache-2.0 License - see the [LICENSE] file for details
111+
112+
[LICENSE]:LICENSE
113+
[THUMBNAIL]:/assets/images/thumbnail.png

assets/images/background.jpg

202 KB
Loading

assets/images/button-down.svg

+10
Loading

0 commit comments

Comments
 (0)