This is a website made using reactjs to showcase the different places of the world to the tourist to go there for a tour.
+
+
+
+
+
+
+
+## :zap: How to run it? š¹ļø
+
+
+Steps to run this website in your local machine is as follows :
+1. Fork this repository
+2. Save the code on your local machine you can also clone the repository
+3. Open terminal
+4. Run following commands in the terminal :
+5. npm install
+6. npm run dev
+7. Make sure you have installed node js before entering these code in the terminal
+
+
+
+
+## :zap: Screenshots šø
+
+
+
+
+
+![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847)
+
+
+
+
+
+
+
+ );
+}
+
+export default SignUp;
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/destinations-data.js b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/destinations-data.js
new file mode 100644
index 00000000..33b8cc49
--- /dev/null
+++ b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/destinations-data.js
@@ -0,0 +1,18 @@
+export default [
+ { id: "1", imageName: "destination-img01.jpeg", tag: "popular" },
+ { id: "2", imageName: "destination-img02.jpeg", tag: "new" },
+ { id: "3", imageName: "destination-img03.jpeg", tag: "romantic" },
+ { id: "4", imageName: "destination-img04.jpeg", tag: "romantic" },
+ { id: "5", imageName: "destination-img05.jpeg", tag: "popular" },
+ { id: "6", imageName: "destination-img06.jpeg", tag: "new" },
+ { id: "7", imageName: "destination-img07.jpeg", tag: "romantic" },
+ { id: "8", imageName: "destination-img08.jpeg", tag: "popular" },
+ { id: "9", imageName: "destination-img09.jpeg", tag: "new" },
+ { id: "10", imageName: "destination-img10.jpeg", tag: "new" },
+ { id: "11", imageName: "destination-img11.jpeg", tag: "new" },
+ { id: "12", imageName: "destination-img12.jpeg", tag: "new" },
+ { id: "13", imageName: "destination-img13.jpeg", tag: "popular" },
+ { id: "14", imageName: "destination-img14.jpeg", tag: "romantic" },
+ { id: "15", imageName: "destination-img15.jpeg", tag: "popular" },
+ { id: "16", imageName: "destination-img16.jpeg", tag: "new" },
+];
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img01.jpeg b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img01.jpeg
new file mode 100644
index 00000000..6cfdd93c
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img01.jpeg differ
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img02.jpeg b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img02.jpeg
new file mode 100644
index 00000000..d8cd40ce
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img02.jpeg differ
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img03.jpeg b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img03.jpeg
new file mode 100644
index 00000000..09940ede
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img03.jpeg differ
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img04.jpeg b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img04.jpeg
new file mode 100644
index 00000000..3c40744e
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img04.jpeg differ
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img05.jpeg b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img05.jpeg
new file mode 100644
index 00000000..79a17092
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img05.jpeg differ
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img06.jpeg b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img06.jpeg
new file mode 100644
index 00000000..5c366823
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img06.jpeg differ
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img07.jpeg b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img07.jpeg
new file mode 100644
index 00000000..7410d180
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img07.jpeg differ
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img08.jpeg b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img08.jpeg
new file mode 100644
index 00000000..fd8c240e
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img08.jpeg differ
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img09.jpeg b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img09.jpeg
new file mode 100644
index 00000000..50ee57fa
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img09.jpeg differ
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img10.jpeg b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img10.jpeg
new file mode 100644
index 00000000..b0b5c5be
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img10.jpeg differ
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img11.jpeg b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img11.jpeg
new file mode 100644
index 00000000..6a963763
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img11.jpeg differ
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img12.jpeg b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img12.jpeg
new file mode 100644
index 00000000..f9259f2f
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img12.jpeg differ
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img13.jpeg b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img13.jpeg
new file mode 100644
index 00000000..6c4ca49c
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img13.jpeg differ
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img14.jpeg b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img14.jpeg
new file mode 100644
index 00000000..11e33cb4
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img14.jpeg differ
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img15.jpeg b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img15.jpeg
new file mode 100644
index 00000000..ec0a04c3
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img15.jpeg differ
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img16.jpeg b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img16.jpeg
new file mode 100644
index 00000000..a6beea14
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/destination-img16.jpeg differ
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-1.jpg b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-1.jpg
new file mode 100644
index 00000000..460b9fe2
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-1.jpg differ
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-2.jpg b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-2.jpg
new file mode 100644
index 00000000..bac13a09
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-2.jpg differ
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-3.jpg b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-3.jpg
new file mode 100644
index 00000000..3d6b0884
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-3.jpg differ
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-4.jpg b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-4.jpg
new file mode 100644
index 00000000..538d5d7c
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-4.jpg differ
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-5.jpg b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-5.jpg
new file mode 100644
index 00000000..4c438148
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-5.jpg differ
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-6.jpg b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-6.jpg
new file mode 100644
index 00000000..a373b9af
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-6.jpg differ
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-7.jpg b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-7.jpg
new file mode 100644
index 00000000..44a1502a
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-7.jpg differ
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-8.jpg b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-8.jpg
new file mode 100644
index 00000000..a9ff2b51
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-8.jpg differ
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-9.jpg b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-9.jpg
new file mode 100644
index 00000000..dbde0850
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-9.jpg differ
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-home.jpg b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-home.jpg
new file mode 100644
index 00000000..9d214db3
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/images/img-home.jpg differ
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/index.css b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/index.css
new file mode 100644
index 00000000..ec2585e8
--- /dev/null
+++ b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/index.css
@@ -0,0 +1,13 @@
+body {
+ margin: 0;
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
+ 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
+ sans-serif;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+code {
+ font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
+ monospace;
+}
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/index.js b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/index.js
new file mode 100644
index 00000000..6ab5bc45
--- /dev/null
+++ b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/index.js
@@ -0,0 +1,18 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import './index.css';
+import App from './App';
+import reportWebVitals from './reportWebVitals';
+import 'bootstrap/dist/css/bootstrap.css';
+
+ReactDOM.render(
+
+
+ ,
+ document.getElementById('root')
+);
+
+// If you want to start measuring performance in your app, pass a function
+// to log results (for example: reportWebVitals(console.log))
+// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
+reportWebVitals();
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/logo.svg b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/logo.svg
new file mode 100644
index 00000000..9dfc1c05
--- /dev/null
+++ b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/logo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/reportWebVitals.js b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/reportWebVitals.js
new file mode 100644
index 00000000..5253d3ad
--- /dev/null
+++ b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/reportWebVitals.js
@@ -0,0 +1,13 @@
+const reportWebVitals = onPerfEntry => {
+ if (onPerfEntry && onPerfEntry instanceof Function) {
+ import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
+ getCLS(onPerfEntry);
+ getFID(onPerfEntry);
+ getFCP(onPerfEntry);
+ getLCP(onPerfEntry);
+ getTTFB(onPerfEntry);
+ });
+ }
+};
+
+export default reportWebVitals;
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/services-data.js b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/services-data.js
new file mode 100644
index 00000000..a649d538
--- /dev/null
+++ b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/services-data.js
@@ -0,0 +1,144 @@
+export default [
+ {
+ id: 1,
+ name: 'Erosantorini',
+ images: [
+ { id: 1, src: 's1-img1.jpg', title: 'foo', description: 'bar' },
+ { id: 1, src: 's1-img2.jpg', title: 'foo', description: 'bar' },
+ { id: 1, src: 's1-img3.jpg', title: 'foo', description: 'bar' }
+ ],
+ tag: "hotel",
+ style: 'Whitewashed wonder',
+ Setting: 'Clifftop seclusion',
+ description: 'A two-acre estate with a whitewashed villa at its heart, Erosantorini in Greece is a four-room clifftop hideaway with impeccable service and volcano views. While you lounge in the infinity pool, gazing at the Aegean from your secluded spot on Santorini, itās easy to imagine itās not a hotel at all, but your fanciest friendsā island home. You can even book the entire place to yourself, so let your imagination run riot.',
+ facilities: [
+ 'Yoga and pilates classes.',
+ 'books and films to borrow.',
+ 'WiFi throughout. In rooms.',
+ 'All ages are welcome',
+ 'Jacuzzi on each private terrace.',
+ 'Lounge by the three-tiered infinity pool.',
+ 'Get steamy in the marble hammam, or book a massage or facial in the treatment room.'
+ ],
+ price: 9757
+ },
+ {
+ id: 2,
+ name: 'The Ranch at Rock Creek',
+ images: [
+ { id: 1, src: 's2-img1.jpg', title: 'foo', description: 'bar' },
+ { id: 1, src: 's2-img2.jpg', title: 'foo', description: 'bar' },
+ { id: 1, src: 's2-img3.jpg', title: 'foo', description: 'bar' }
+ ],
+ tag: "hotel",
+ style: 'Frontier luxe',
+ Setting: 'Wild Montana countryside',
+ description: "More hotels in Montana More hotels in United States Saddle up and play cowboy at The Ranch at Rock Creek hotel in Granite County, a working ranch in the middle of mountain-surrounded nowhere. Thereās no town for miles, but with a spa, ice rink, giant movie screen, bowling alley and acres of big-sky outdoors, no-oneās complaining. If thatās not quite enough diversion, thereās more than a holidayās worth of outdoor fun to be had: ride, bike, fish in the creek or hop on a horse-drawn sleigh all included in your room rate.",
+ facilities: [
+ 'Rodeo grounds (for the weekly rodeo).',
+ 'cinema.',
+ 'the Buckle Barn event space.',
+ 'library.',
+ 'bowling alley.',
+ 'Spa.',
+ 'The thousands of acres have room for a heated outdoor pool.',
+ ],
+ price: 8702
+ },
+ {
+ id: 3,
+ name: 'Severin\'s Alpine Retreat',
+ images: [
+ { id: 1, src: 's3-img1.jpg', title: 'foo', description: 'bar' },
+ { id: 1, src: 's3-img2.jpg', title: 'foo', description: 'bar' },
+ { id: 1, src: 's3-img3.jpg', title: 'foo', description: 'bar' }
+ ],
+ tag: "hotel",
+ style: 'Peak sophistication',
+ Setting: 'Venerated ski village',
+ description: "More hotels in Lech More hotels in Austria Lech ski hotel Severinās Alpine Retreat is a haven of high-altitude indulgence, combining chic chalet looks, cutting-edge Tyrolean cuisine and a suave spa. Clad in thick timber and overlooking the soaring peaks, the suites have no shortage of Alpine charm, which is elevated from its rustic origins by sumptuous Minotti furniture, glass-encased fireplaces and slate soaking tubs. In the restaurant, a cobalt-blue stove and chrome-covered lamps set the scene for the nightly four-course dinners, which give the local cuisine the fine-dining treatment. With the world-famous Arlberg resort on the doorstep, most guests make a beeline for the lifts each morning, reached via private shuttle in a matter of minutes. If youād rather take a spa day, the impressive pool, saunas and 3,000-bottle-strong wine cellar are equally enticing.",
+ facilities: [
+ 'Heated ski lockers.',
+ 'wine cellar.',
+ 'childrenās playroom.',
+ 'free WiFi throughout.',
+ 'laundry service.',
+ 'All ages are welcome',
+ 'Walled with thick timber, each suite has a glass-encased fireplace.',
+ 'The heated pool is in the spa area, and cuts a suave figure thanks to its slate-clad walls.',
+ ],
+ price: 3466
+ },
+ {
+ id: 4,
+ name: 'Rosewood Castiglion del Bosco Villa Oddi',
+ images: [
+ { id: 1, src: 's4-img1.jpg', title: 'foo', description: 'bar' },
+ { id: 1, src: 's4-img2.jpg', title: 'foo', description: 'bar' },
+ { id: 1, src: 's4-img3.jpg', title: 'foo', description: 'bar' }
+ ],
+ tag: "villa",
+ style: 'Fetching family farmhouse',
+ Setting: 'Cypress-strewn estate',
+ description: "Restored from an ancient farmhouse (using the original Tuscan stone), six-bedroom Villa Oddi is a traditionally charming, centuries-old Italian casa, with added modern touches like a slick, steel kitchen and private infinity pool. Vaulted brick ceilings, wooden beams and flagstone floors are offset by comfortable, modern touches: cosy up in the TV room in front of the 82-inch screen; whip up an antipasti feast in the slick kitchen; and gaze over panoramic views of the Val dāOrcia from the private infinity pool. On warm evenings, have a lazy game of tennis on your own court, then pop a few pizzas in the outdoor, wood-firing oven and stretch out on the pergola-shaded terrace. To cap it all, a cypress-lined road leads to the village of Borgo, a historic rural enclave, authentically restored by the hotel Rosewood Castiglion del Bosco; the cobbled streets are dotted with restaurants, a fitness centre, a spa and a cookery school.",
+ facilities: [
+ 'In the TV room: 82-inch flatscreen TV with Apple TV. Playstation 4.',
+ 'Flatscreen TVs in all bedrooms.',
+ 'Free WiFi throughout.',
+ 'Smartphone-enabled sound-system.',
+ 'Coal barbecue, on request.',
+ 'Air-conditioning throughout.',
+ 'Two hours of housekeeping and turndown service daily.',
+ 'Welcome groceries on arrival.',
+ ],
+ price: 11259
+ },
+ {
+ id: 5,
+ name: 'EroSantorini Estate',
+ images: [
+ { id: 1, src: 's5-img1.jpg', title: 'foo', description: 'bar' },
+ { id: 1, src: 's5-img2.jpg', title: 'foo', description: 'bar' },
+ { id: 1, src: 's5-img3.jpg', title: 'foo', description: 'bar' }
+ ],
+ tag: "villa",
+ style: 'Fetching family farmhouse',
+ Setting: 'Cypress-strewn estate',
+ description: "Clifftop hideaway Erosantorini is a luxury villa with views over Santoriniās famous caldera. The five suites could be self-contained holiday stays in their own rights; each has a private Aegean-view terrace with a plunge pool and sunloungers. The main infinity pool ā all three tiers of it ā juts out over the cliffās edge, and the pool terrace is dotted with daybeds and loungers. The alfresco kitchen and dining area have sunset views, and the wellness terrace is aptly placed for sun salutations too. Enjoy leisurely breakfasts in the poolside cave and evenings by the caldera-view fire pit.",
+ facilities: [
+ 'This luxury stayās buildings and outdoor living spaces are laid out over three levels.',
+ 'Fully equipped kitchen with wine- and gourmet-food-stocked Smeg refrigerator and a Nespresso coffee machines.',
+ 'Working floating fireplaces.',
+ 'A marble-lined spa with heated floors, a traditional hammam steam room, aromatherapy shower, treatment room and relaxation zone.',
+ 'Stocked wine cellar.',
+ 'The triangular, triple-tiered infinity pool is positioned at the edge of the cliff and looks out over the caldera.',
+ 'Two hours of housekeeping and turndown service daily.',
+ 'The pool has an underwater sound system; itās unheated and ranges in depth from 1.60 to 1.90 metres.',
+ ],
+ price: 9757
+ },
+ {
+ id: 6,
+ name: 'Amanpuri Eight-Bedroom Ocean Villa',
+ images: [
+ { id: 1, src: 's6-img1.jpg', title: 'foo', description: 'bar' },
+ { id: 1, src: 's6-img2.jpg', title: 'foo', description: 'bar' },
+ { id: 1, src: 's6-img3.jpg', title: 'foo', description: 'bar' }
+ ],
+ tag: "villa",
+ style: 'Palatial pavilio',
+ Setting: 'Coconut-grove coastline',
+ description: "The Amanpuri 8-Bedroom Ocean Villa, with its sea-facing, coconut-plantation setting, is guaranteed to live up to the hotelās moniker, which translates as āplace of peaceā. It would be hard not to find tranquillity amid the gleaming feng shui of the wood-lined interiors, which afford glimpses of the outdoor vegetation and shimmering shores at every opportunity through floor-to-ceiling windows. A spectacular Aman spa is a short walk or buggy jaunt away, but thereās an in-villa massage room in case you couldnāt possibly bear to leave ā though you probably should, since the resortās five restaurants await.",
+ facilities: [
+ 'The spacious villas (9,908sq m) come complete with a luxurious lounge, a media room, a library and a fully-equipped kitchen manned by a private chef; some also boast a gym, massage room and steam room.',
+ 'Enjoy the great outdoor views through floor-to-ceiling windows from the comfort of the wood-filled living space, decorated with luxe fabrics and perfectly positioned artworks and antiques.',
+ 'There are eight ocean-facing bedrooms, each with a king-size bed and an ensuite bathroom with a sunken bath tub and separate shower.',
+ 'Just a few steps from the living room, the 25-metre heated private pool has panoramic ocean views and is surrounded by sunbeds and 12 sunloungers.',
+ 'The living room leads out onto an expansive private terrace overlooking the ocean.',
+ 'The pool is the main focal point, but there are various outdoor dining and lounging salas to park yourself on.',
+ 'Two hours of housekeeping and turndown service daily.',
+ 'During high season (December to April), hotel transfers are free.',
+ ],
+ price: 9000
+ }
+]
\ No newline at end of file
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/setupTests.js b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/setupTests.js
new file mode 100644
index 00000000..8f2609b7
--- /dev/null
+++ b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/setupTests.js
@@ -0,0 +1,5 @@
+// jest-dom adds custom jest matchers for asserting on DOM nodes.
+// allows you to do things like:
+// expect(element).toHaveTextContent(/react/i)
+// learn more: https://github.com/testing-library/jest-dom
+import '@testing-library/jest-dom';
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/videos/video-1.mp4 b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/videos/video-1.mp4
new file mode 100644
index 00000000..3951f2e5
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/videos/video-1.mp4 differ
diff --git a/React-JS-Projects/Intermediate/Tspot-Travel-App/src/videos/video-2.mp4 b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/videos/video-2.mp4
new file mode 100644
index 00000000..97587b05
Binary files /dev/null and b/React-JS-Projects/Intermediate/Tspot-Travel-App/src/videos/video-2.mp4 differ
diff --git a/React-JS-Projects/README.md b/React-JS-Projects/README.md
index 2532f8aa..ada4f3e8 100644
--- a/React-JS-Projects/README.md
+++ b/React-JS-Projects/README.md
@@ -52,6 +52,7 @@
| 25 | [Motivation For The Day](./Basic/Motivation-For-The-Day/) | ![Basic](https://img.shields.io/badge/Basic-00FF00?style=for-the-badge) |
| 26 | [Job Portal](./Advanced/Job-Portal/) | ![Advanced](https://img.shields.io/badge/Advanced-FF0000?style=for-the-badge) |
| 27 | [Cakes n Cookies](./Intermediate/Cakes-N-Cookies/) | ![Intermediate](https://img.shields.io/badge/Intermediate-FFD700?style=for-the-badge) |
+| 28 | [TSPOT](./Intermediate/Tspot-Travel-App/) | ![Intermediate](https://img.shields.io/badge/Intermediate-FFD700?style=for-the-badge) |