Skip to content

Commit f103de1

Browse files
946605: Need to implement UI team suggested changes in hotel booking application
1 parent e4e9bc1 commit f103de1

31 files changed

+625
-651
lines changed

Hotel-booking-App/.gitignore

+7-23
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,7 @@
1-
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2-
3-
# dependencies
4-
/node_modules
5-
/.pnp
6-
.pnp.js
7-
8-
# testing
9-
/coverage
10-
11-
# production
12-
/build
13-
14-
# misc
15-
.DS_Store
16-
.env.local
17-
.env.development.local
18-
.env.test.local
19-
.env.production.local
20-
21-
npm-debug.log*
22-
yarn-debug.log*
23-
yarn-error.log*
1+
.npmrc
2+
.vscode/
3+
node_modules/
4+
src/**/*.js
5+
dist/
6+
styles/*.*
7+
!styles/index.css

Hotel-booking-App/.npmignore

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
.npmrc
2+
.vscode/
3+
.npmignore
4+
config.json
5+
gulpfile.js
6+
tsconfig.json
7+
node-modules/
8+
Jenkinsfile
9+
src/**/*.js

Hotel-booking-App/Jenkinsfile

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
#!groovy
2+
3+
node('EJ2Angularlatest') {
4+
try {
5+
deleteDir()
6+
7+
stage('Import') {
8+
git url: 'http://github.com/essential-studio/ej2-groovy-scripts.git', branch: 'master', credentialsId: env.GithubCredentialID;
9+
shared = load 'src/shared.groovy'
10+
}
11+
12+
stage('Checkout') {
13+
checkout scm
14+
shared.getProjectDetails()
15+
shared.gitlabCommitStatus('running')
16+
}
17+
18+
stage('Install') {
19+
sh 'npm install'
20+
}
21+
22+
stage('Build') {
23+
sh 'gulp hide-license && npm run build && gulp finished'
24+
}
25+
26+
stage('Publish') {
27+
shared.publish()
28+
}
29+
30+
shared.gitlabCommitStatus('success')
31+
32+
deleteDir()
33+
}
34+
catch(Exception e) {
35+
shared.throwError(e)
36+
deleteDir()
37+
error('Build Failed')
38+
}
39+
}

Hotel-booking-App/README.md

+22-49
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,26 @@
1-
# Hotel booking application using Syncfusion React Grid
1+
# Hotel booking application using Syncfusion React DataGrid
22
While looking for a secure and comfortable hotel stay that fits your budget, preferred amenities, desired location, and high user reviews, this article explores how Syncfusion React Grid can display a comprehensive list of hotels and their rooms, along with facilities, user reviews, and costs. Additionally, Syncfusion React Grid offers filtering options based on budget, amenities, location, and user reviews, making the booking process more efficient and user-friendly.
33

4-
This demo will show you how to utilize the Syncfusion Data Grid to display the lists of hotels and it facility and cost and locations and user reviews. Also, how to provide the option to select the hostel based on available hotel rooms on the selected check and checkout date with budget-wise and facilities and user review. With our step-by-step guide, you'll be able to easily set up and configure the data grid to meet your specific needs.
5-
6-
7-
![Hotelbooking App](img/hotel-app.gif)
8-
9-
## Target Audience
10-
- Accountants and Bookkeepers
11-
- Construction Companies
12-
- Property Management Companies
13-
- Medical Practice
14-
- Educational Institutions
15-
- Event Management Companies
16-
- Software Development Firms
17-
- Transportation and Logistics Companies
18-
- Manufacturing Companies
19-
- Travel Agencies
20-
- Insurance Agencies
21-
- Real Estate Agencies
22-
- Hospitality Businesses
23-
- Fitness Centers and Gyms
24-
- Consulting Firms
25-
- Photography Studios
26-
27-
## Prerequisites
28-
- We have developed this app by using the [node.js 16.0](https://legacy.reactjs.org/blog/2017/09/26/react-v16.0.html).
29-
- If you have not previously installed the React packages or if you have installed a version of node.js older than Node 16 on your machine, you can run the following command to install them.
30-
```sh
31-
npm install -g create-react-app
32-
33-
```
34-
## Run the sample
35-
To execute the following command in your command prompt.
36-
```sh
37-
npm start
38-
```
39-
## Common errors
40-
41-
| Error | Try to solution |
42-
|----------|----------|
43-
| Module not found: Can't resolve 'module' | This indicates that the required module is either not installed properly or is missing. Therefore, we recommend ensuring that all dependency modules are installed correctly by executing either the npm install or yarn install command after deleting the package.lock.json file. |
44-
| npm ERR! ENOENT: no such file or directory | This error suggests that the specified directory or file is not available on your machine, or permission for execution was denied. To resolve this, ensure that the file exists and that proper permissions are enabled for accessing the file or directory. |
45-
|npm ERR! Failed at the [email protected] start script| This error occurred due to a problem with the start script defined in your package.json file. It's important to validate the start script and execute it correctly set up to run your application. Additionally, ensure that all dependencies are installed properly or not. |
46-
|npm ERR! EADDRINUSE: Address already in use | This error indicates the port number already used. So, you can choose another port or stop the existing running application. |
47-
|npm ERR! Invalid package.json| This error indicates any syntax issue occurred in your package.json. to ensure all the syntax properly. |
48-
49-
## Reference of Syncfusion Grid
50-
[Demo](https://ej2.syncfusion.com/react/demos/#/material3/grid/overview), <br/>
51-
[Documentation](https://ej2.syncfusion.com/react/documentation/grid/getting-started).
4+
This demo will show you how to utilize the Syncfusion Data Grid to display the lists of hotels, facilities, costs, locations, and user reviews. Also, how to provide the option to select the hostel based on available hotel rooms on the selected check and checkout date with budget-wise and facilities and user review. With our step-by-step guide, you can easily set up and configure the data grid to meet your specific needs.
525

6+
![Hotelbooking App](images/hotel-app.gif)
7+
8+
* To install all dependent packages, use the below command.
9+
10+
```
11+
npm install
12+
```
13+
* If Angular CLI is not installed into your machine, please use the below command to install Angular CLI.
14+
15+
```
16+
npm install -g @angular/[email protected]
17+
```
18+
19+
### Run
20+
21+
To run the sample, use the below command
22+
23+
```
24+
ng serve
25+
```
5326

Hotel-booking-App/config.json

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"productOwner": "Maithiliy Karthikeyan "
3+
}

Hotel-booking-App/favicon.ico

6.42 KB
Binary file not shown.

Hotel-booking-App/gulpfile.js

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
require('@syncfusion/ej2-showcase-helper');

Hotel-booking-App/index.html

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<!DOCTYPE html>
2+
<html>
3+
4+
<head>
5+
<meta charset="UTF-8" />
6+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
7+
<meta name="description" content="Essential JS 2 for React - Samples template">
8+
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
9+
<title>Essential JS 2 for React - Hotel room booking application</title>
10+
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" />
11+
<link rel="preconnect" href="https://fonts.googleapis.com">
12+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
13+
<link
14+
href="https://fonts.googleapis.com/css2?family=Jersey+15&family=Josefin+Sans:ital,wght@0,100..700;1,100..700&family=Rubik+Vinyl&display=swap"
15+
rel="stylesheet">
16+
</head>
17+
18+
<body>
19+
<div id="content-area"></div>
20+
</body>
21+
22+
</html>

Hotel-booking-App/license

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
Essential JS 2 library is available under the Syncfusion Essential Studio program, and can be licensed either under the Syncfusion Community License Program or the Syncfusion commercial license.
2+
3+
To be qualified for the Syncfusion Community License Program you must have a gross revenue of less than one (1) million U.S. dollars ($1,000,000.00 USD) per year and have less than five (5) developers in your organization, and agree to be bound by Syncfusion’s terms and conditions.
4+
5+
Customers who do not qualify for the community license can contact [email protected] for commercial licensing options.
6+
7+
Under no circumstances can you use this product without (1) either a Community License or a commercial license and (2) without agreeing and abiding by Syncfusion’s license containing all terms and conditions.
8+
9+
The Syncfusion license that contains the terms and conditions can be found at
10+
https://www.syncfusion.com/content/downloads/syncfusion_license.pdf

Hotel-booking-App/package.json

+30-69
Original file line numberDiff line numberDiff line change
@@ -1,80 +1,41 @@
11
{
2-
"name": "react-app",
3-
"version": "0.1.0",
4-
"private": true,
5-
"homepage": ".",
2+
"name": "@syncfusion/ej2-react-hotel-room-reserve",
3+
"version": "1.0.0",
4+
"description": "Essential JS 2 - Hotel room booking application",
5+
"author": "Syncfusion Inc.",
6+
"license": "SEE LICENSE IN license",
7+
"scripts": {
8+
"start": "webpack-dev-server --open --mode development",
9+
"build": "webpack --mode production",
10+
"ci-publish": "gulp publish-sample"
11+
},
12+
"devDependencies": {
13+
"@types/node": "^20.4.1",
14+
"@types/react": "^18.2.14",
15+
"@types/react-dom": "^18.2.6",
16+
"@types/react-router-dom": "^5.3.3",
17+
"css-loader": "^6.8.1",
18+
"html-webpack-plugin": "^5.5.3",
19+
"mini-css-extract-plugin": "^2.7.6",
20+
"terser-webpack-plugin": "^5.3.9",
21+
"ts-loader": "^9.4.4",
22+
"typescript": "^5.1.6",
23+
"webpack": "^5.88.1",
24+
"webpack-cli": "^5.1.4",
25+
"webpack-dev-server": "^4.15.1",
26+
"copy-webpack-plugin": "^12.0.2"
27+
},
628
"dependencies": {
7-
"@babel/plugin-transform-runtime": "^7.23.4",
8-
"@babel/preset-env": "^7.23.3",
9-
"@babel/preset-react": "^7.23.3",
10-
"@babel/preset-typescript": "^7.23.3",
11-
"@headlessui/react": "^1.7.15",
12-
"@heroicons/react": "^2.0.18",
29+
"react": "^18.2.0",
30+
"react-dom": "^18.2.0",
31+
"react-router-dom": "^6.14.1",
1332
"@syncfusion/ej2-react-grids": "*",
1433
"@syncfusion/ej2-react-calendars": "*",
1534
"@syncfusion/ej2-react-buttons": "*",
1635
"@syncfusion/ej2-react-popups": "*",
1736
"@syncfusion/ej2-react-inputs": "*",
1837
"@syncfusion/ej2-react-dropdowns": "*",
1938
"@syncfusion/ej2-react-navigations": "*",
20-
"@syncfusion/ej2-react-maps": "*",
21-
"@testing-library/jest-dom": "^5.16.5",
22-
"@testing-library/react": "^13.4.0",
23-
"@testing-library/user-event": "^13.5.0",
24-
"@types/jest": "^27.5.2",
25-
"@types/node": "^16.18.23",
26-
"@types/numeral": "^2.0.2",
27-
"@types/react": "^18.0.37",
28-
"@types/react-dom": "^18.0.11",
29-
"axios": "^1.4.0",
30-
"babel-plugin-inline-react-svg": "^2.0.2",
31-
"babel-plugin-transform-decorators": "^6.24.1",
32-
"buffer": "^6.0.3",
33-
"formik": "^2.4.2",
34-
"moment": "^2.29.4",
35-
"numeral": "^2.0.6",
36-
"react": "^18.2.0",
37-
"react-dom": "^18.2.0",
38-
"react-inject-env": "^2.1.0",
39-
"react-number-format": "^5.3.1",
40-
"react-router-dom": "^6.11.1",
41-
"react-scripts": "5.0.1",
42-
"typescript": "^4.9.5",
43-
"web-vitals": "^2.1.4",
44-
"yup": "^1.2.0"
45-
},
46-
"scripts": {
47-
"start": "react-scripts start",
48-
"build": "react-scripts build",
49-
"test": "react-scripts test",
50-
"eject": "react-scripts eject",
51-
"format": "prettier --write \"./src/**/*.{js,jsx,ts,tsx,json,css,scss,md}\"",
52-
"prepare": "husky install"
53-
},
54-
"eslintConfig": {
55-
"extends": [
56-
"react-app",
57-
"react-app/jest"
58-
]
59-
},
60-
"browserslist": {
61-
"production": [
62-
">0.2%",
63-
"not dead",
64-
"not op_mini all"
65-
],
66-
"development": [
67-
"last 1 chrome version",
68-
"last 1 firefox version",
69-
"last 1 safari version"
70-
]
71-
},
72-
"devDependencies": {
73-
"@babel/plugin-proposal-private-property-in-object": "^7.21.11",
74-
"autoprefixer": "^10.4.14",
75-
"husky": "^8.0.3",
76-
"postcss": "^8.4.22",
77-
"prettier": "2.8.8",
78-
"tailwindcss": "^3.3.1"
39+
"@syncfusion/ej2-react-maps": "*"
7940
}
8041
}

Hotel-booking-App/public/favicon.ico

-3.08 KB
Binary file not shown.

Hotel-booking-App/public/index.html

-17
This file was deleted.

Hotel-booking-App/public/logo192.png

-5.22 KB
Binary file not shown.

Hotel-booking-App/public/logo512.png

-9.44 KB
Binary file not shown.

Hotel-booking-App/public/manifest.json

-25
This file was deleted.

Hotel-booking-App/public/robots.txt

-3
This file was deleted.
+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import * as React from "react";
2+
import { createRoot } from 'react-dom/client';
3+
import HotelBook from "../components/HotelBook/HotelBook";
4+
import "../../styles/index.css";
5+
6+
const root = createRoot(document.getElementById("content-area") as HTMLElement);
7+
root.render(
8+
<HotelBook />
9+
);

0 commit comments

Comments
 (0)