Denis Thiessen
5 months ago
4 changed files with 421 additions and 0 deletions
-
BINpublic/images/quickdeliver_logo.png
-
155src/pages/study_site_6/DeliveryRegions.jsx
-
46src/pages/study_site_6/DownloadApp.jsx
-
220src/pages/study_site_6/StartPage6.jsx
After Width: 500 | Height: 500 | Size: 26 KiB |
@ -0,0 +1,155 @@ |
|||
import React from "react"; |
|||
import { Spacer } from "@geist-ui/core"; |
|||
|
|||
const DeliveryRegions = () => { |
|||
const regions = { |
|||
amsterdam: [ |
|||
{ name: "Amsterdam-Zuid", deliveryTime: "Same-day delivery" }, |
|||
{ name: "Amsterdam-Oost", deliveryTime: "Same-day delivery" }, |
|||
{ name: "Amsterdam-Noord", deliveryTime: "Same-day delivery" }, |
|||
], |
|||
nearbyCities: [ |
|||
{ name: "Haarlem", deliveryTime: "Next-day delivery" }, |
|||
{ name: "Utrecht", deliveryTime: "Next-day delivery" }, |
|||
{ name: "The Hague", deliveryTime: "Next-day delivery" }, |
|||
{ name: "Rotterdam", deliveryTime: "Next-day delivery" }, |
|||
], |
|||
international: [ |
|||
"🇺🇸 United States", |
|||
"🇨🇦 Canada", |
|||
"🇬🇧 United Kingdom", |
|||
"🇩🇪 Germany", |
|||
"🇫🇷 France", |
|||
"🇮🇹 Italy", |
|||
"🇪🇸 Spain", |
|||
"🇦🇺 Australia", |
|||
"🇯🇵 Japan", |
|||
"🇨🇳 China", |
|||
"🇮🇳 India", |
|||
"🇧🇷 Brazil", |
|||
"🇲🇽 Mexico", |
|||
"🇷🇺 Russia", |
|||
"🇰🇷 South Korea", |
|||
"🇳🇱 Netherlands", |
|||
"🇸🇪 Sweden", |
|||
"🇳🇴 Norway", |
|||
"🇩🇰 Denmark", |
|||
"🇫🇮 Finland", |
|||
"🇧🇪 Belgium", |
|||
"🇨🇭 Switzerland", |
|||
"🇦🇹 Austria", |
|||
"🇮🇪 Ireland", |
|||
"🇵🇹 Portugal", |
|||
"🇬🇷 Greece", |
|||
"🇵🇱 Poland", |
|||
"🇨🇿 Czech Republic", |
|||
"🇭🇺 Hungary", |
|||
"🇹🇷 Turkey", |
|||
"🇮🇱 Israel", |
|||
"🇿🇦 South Africa", |
|||
"🇳🇿 New Zealand", |
|||
"🇦🇷 Argentina", |
|||
"🇨🇱 Chile", |
|||
"🇨🇴 Colombia", |
|||
"🇵🇪 Peru", |
|||
"🇻🇪 Venezuela", |
|||
"🇪🇬 Egypt", |
|||
"🇸🇦 Saudi Arabia", |
|||
"🇦🇪 United Arab Emirates", |
|||
"🇶🇦 Qatar", |
|||
"🇰🇼 Kuwait", |
|||
"🇧🇭 Bahrain", |
|||
"🇴🇲 Oman", |
|||
"🇯🇴 Jordan", |
|||
"🇱🇧 Lebanon", |
|||
"🇲🇾 Malaysia", |
|||
"🇸🇬 Singapore", |
|||
"🇹🇭 Thailand", |
|||
"🇻🇳 Vietnam", |
|||
"🇵🇭 Philippines", |
|||
"🇮🇩 Indonesia", |
|||
"🇵🇰 Pakistan", |
|||
"🇧🇩 Bangladesh", |
|||
"🇱🇰 Sri Lanka", |
|||
"🇺🇦 Ukraine", |
|||
"🇷🇴 Romania", |
|||
"🇧🇬 Bulgaria", |
|||
"🇭🇷 Croatia", |
|||
"🇸🇮 Slovenia", |
|||
"🇷🇸 Serbia", |
|||
"🇸🇰 Slovakia", |
|||
"🇱🇺 Luxembourg", |
|||
"🇪🇪 Estonia", |
|||
"🇱🇻 Latvia", |
|||
"🇱🇹 Lithuania", |
|||
"🇮🇸 Iceland", |
|||
"🇲🇹 Malta", |
|||
"🇨🇾 Cyprus", |
|||
"🇲🇦 Morocco", |
|||
"🇹🇳 Tunisia", |
|||
"🇳🇬 Nigeria", |
|||
"🇰🇪 Kenya", |
|||
"🇬🇭 Ghana", |
|||
"🇨🇮 Ivory Coast", |
|||
"🇸🇳 Senegal", |
|||
"🇰🇿 Kazakhstan", |
|||
"🇺🇿 Uzbekistan", |
|||
"🇬🇪 Georgia", |
|||
"🇦🇲 Armenia", |
|||
"🇦🇿 Azerbaijan", |
|||
"🇧🇾 Belarus", |
|||
"🇲🇩 Moldova", |
|||
"🇧🇦 Bosnia and Herzegovina", |
|||
"🇦🇱 Albania", |
|||
"🇲🇰 Macedonia", |
|||
"🇲🇪 Montenegro", |
|||
"🇽🇰 Kosovo", |
|||
"🇵🇾 Paraguay", |
|||
"🇺🇾 Uruguay", |
|||
"🇧🇴 Bolivia", |
|||
"🇪🇨 Ecuador", |
|||
"🇵🇦 Panama", |
|||
"🇨🇷 Costa Rica", |
|||
"🇬🇹 Guatemala", |
|||
"🇭🇳 Honduras", |
|||
"🇸🇻 El Salvador", |
|||
"🇯🇲 Jamaica", |
|||
].map((country) => ({ |
|||
name: country, |
|||
deliveryTime: "International shipping", |
|||
})), |
|||
}; |
|||
|
|||
return ( |
|||
<div> |
|||
<h3>QuickDeliver Delivery Regions</h3> |
|||
<Spacer h={2} /> |
|||
<h4>Amsterdam Neighborhoods</h4> |
|||
<ul> |
|||
{regions.amsterdam.map((region) => ( |
|||
<li key={region.name}> |
|||
{region.name}: <i>{region.deliveryTime}</i> |
|||
</li> |
|||
))} |
|||
</ul> |
|||
<h4>Nearby Cities</h4> |
|||
<ul> |
|||
{regions.nearbyCities.map((city) => ( |
|||
<li key={city.name}> |
|||
{city.name}: <i>{city.deliveryTime}</i> |
|||
</li> |
|||
))} |
|||
</ul> |
|||
<h4>International Shipping</h4> |
|||
<ul> |
|||
{regions.international.map((country) => ( |
|||
<li key={country.name}> |
|||
{country.name}: <i>{country.deliveryTime}</i> |
|||
</li> |
|||
))} |
|||
</ul> |
|||
</div> |
|||
); |
|||
}; |
|||
|
|||
export default DeliveryRegions; |
@ -0,0 +1,46 @@ |
|||
import React, { useState } from "react"; |
|||
|
|||
function DownloadApp() { |
|||
const [showReminder, setShowReminder] = useState(false); |
|||
|
|||
const handleButtonClick = () => { |
|||
setShowReminder(true); |
|||
}; |
|||
|
|||
return ( |
|||
<div style={{ textAlign: "center", padding: "20px" }}> |
|||
<h3>Download the QuickDeliver App</h3> |
|||
<p> |
|||
Experience the convenience of QuickDeliver right at your fingertips. |
|||
</p> |
|||
<div style={{ margin: "20px 0" }}> |
|||
<button |
|||
onClick={handleButtonClick} |
|||
style={{ margin: "10px", padding: "10px 20px", fontSize: "16px" }} |
|||
> |
|||
Download for iOS |
|||
</button> |
|||
<button |
|||
onClick={handleButtonClick} |
|||
style={{ margin: "10px", padding: "10px 20px", fontSize: "16px" }} |
|||
> |
|||
Download for Android |
|||
</button> |
|||
</div> |
|||
{showReminder && ( |
|||
<div> |
|||
<p style={{ fontSize: "18px", color: "red", marginTop: "20px" }}> |
|||
🚨 Just a friendly reminder: This is a study, and there is no actual |
|||
app! 🚨 |
|||
</p> |
|||
<p> |
|||
Thanks for participating and have fun exploring our mock-up delivery |
|||
service. |
|||
</p> |
|||
</div> |
|||
)} |
|||
</div> |
|||
); |
|||
} |
|||
|
|||
export default DownloadApp; |
@ -0,0 +1,220 @@ |
|||
import React, { useState } from "react"; |
|||
import { getTranslation } from "../../core/i18n/I18NHandler"; |
|||
import WebpageBanner from "../../components/webpage_container/WebpageBanner"; |
|||
import { |
|||
StudySite, |
|||
getHeatmapData, |
|||
} from "../../components/webpage_container/StudySite"; |
|||
import { pushToMouseLog, getSensorLog } from "../../core/log/SensorLogger"; |
|||
import { Collapse, Text, Spacer } from "@geist-ui/core"; |
|||
import PopupModal from "../../components/PopupModal"; |
|||
|
|||
function StartPage6({ redirectLoc }) { |
|||
const [modalVisible, setModalVisible] = useState(false); |
|||
|
|||
var saveMouseLog = function () { |
|||
pushToMouseLog(getHeatmapData()); |
|||
}; |
|||
|
|||
const closeModal = () => { |
|||
setModalVisible(false); |
|||
}; |
|||
|
|||
const pricingStructure = ( |
|||
<div> |
|||
<ul> |
|||
<li>Within Amsterdam: €7.99 for small packages.</li> |
|||
<li>Haarlem, Utrecht, and The Hague: €12.99 for small packages.</li> |
|||
<li>Insurance: Starts at €1 per €100 of coverage.</li> |
|||
<li>Signature confirmation: Additional €2.</li> |
|||
</ul> |
|||
<Text> |
|||
International shipping rates vary, with discounts available for bulk |
|||
shipments or regular business customers. |
|||
</Text> |
|||
</div> |
|||
); |
|||
|
|||
// TODO THINK IF I WANT TO JUST USE AN OVERLAY FOR OTHER DUMMY LINKS, WHICH ARENT CORRECT??? |
|||
// IS THAT OKAY??? |
|||
|
|||
return ( |
|||
<StudySite> |
|||
<WebpageBanner translationKey="task_6_info" /> |
|||
<Spacer h={1} /> |
|||
<img |
|||
src="/images/quickdeliver_logo.png" |
|||
width="150px" |
|||
alt="QuickDeliver Logo" |
|||
class="centeredLogo" |
|||
/> |
|||
<Text> |
|||
Welcome to QuickDeliver, your quickest and safest way to deliver goods |
|||
to anywhere in Amsterdam, the Netherlands and around the world. |
|||
</Text> |
|||
<Collapse.Group> |
|||
<Collapse title="Service Overview"> |
|||
<Text> |
|||
Using QuickDeliver is simple and hassle-free. Start by visiting our |
|||
website or downloading our app, where you can easily{" "} |
|||
<a href="./download_quickdeliver">create an account</a> and schedule |
|||
your delivery. Enter the pickup and drop-off locations, select your |
|||
preferred delivery speed, and choose any additional services such as |
|||
signature confirmation or insurance. Our system will provide an |
|||
instant quote, and once confirmed, a courier will be dispatched to |
|||
your location. You can track your package in real-time and receive |
|||
notifications at every stage of the delivery process. |
|||
</Text> |
|||
</Collapse> |
|||
<Collapse title="How it works"> |
|||
<Text> |
|||
Using QuickDeliver is simple and hassle-free. Start by visiting our |
|||
website or downloading our app, where you can easily{" "} |
|||
<a href="./download_quickdeliver">create an account</a> and schedule |
|||
your delivery. Enter the pickup and drop-off locations, select your |
|||
preferred delivery speed, and choose any additional services such as |
|||
signature confirmation or insurance. Our system will provide an |
|||
instant quote, and once confirmed, a courier will be dispatched to |
|||
your location. You can track your package in real-time and receive |
|||
notifications at every stage of the delivery process. |
|||
</Text> |
|||
</Collapse> |
|||
<Collapse title="Pricing"> |
|||
<Text> |
|||
At QuickDeliver, we offer competitive pricing tailored to your |
|||
delivery needs. Our rates are based on the package's size, weight, |
|||
and delivery speed. See our pricing structure for more information: |
|||
</Text> |
|||
<button |
|||
className="centeredLogo" |
|||
onClick={() => { |
|||
setModalVisible(true); |
|||
}} |
|||
> |
|||
Pricing Structure |
|||
</button> |
|||
<Text>For an exact quote, contact our customer service team.</Text> |
|||
<PopupModal |
|||
visible={modalVisible} |
|||
closeHandler={closeModal} |
|||
title="Pricing Structure" |
|||
content={pricingStructure} |
|||
/> |
|||
</Collapse> |
|||
<Collapse title="Delivery Areas"> |
|||
<Text> |
|||
QuickDeliver operates within Amsterdam and extends to surrounding |
|||
cities and regions. Our same-day delivery service covers all |
|||
neighborhoods in Amsterdam, including Amsterdam-Zuid, |
|||
Amsterdam-Oost, and Amsterdam-Noord. Next-day delivery is available |
|||
for cities like Haarlem, Utrecht, The Hague, and Rotterdam. Our |
|||
international shipping network covers over 100 countries worldwide. |
|||
We are continually expanding our service areas to reach more |
|||
customers. Check <a href="./delivery_regions">our website</a> for |
|||
the latest updates on service availability in your region. |
|||
</Text> |
|||
</Collapse> |
|||
<Collapse title="Package Restrictions"> |
|||
<Text> |
|||
To ensure the safety and security of all deliveries, QuickDeliver |
|||
has specific restrictions on certain items. We do not transport |
|||
hazardous materials, perishable goods, live animals, or illegal |
|||
substances. Additionally, packages exceeding 30 kg or dimensions |
|||
larger than 120 cm on any side require special arrangements. Please |
|||
review our detailed list of restricted items on our website or |
|||
contact customer support if you have questions about your package's |
|||
eligibility. |
|||
</Text> |
|||
</Collapse> |
|||
<Collapse title="Tracking"> |
|||
<Text> |
|||
Stay informed about your delivery with QuickDeliver's real-time |
|||
tracking feature. Once your package is picked up, you'll receive a |
|||
tracking number that you can use on our website or{" "} |
|||
<a href="./download_quickdeliver">app</a>. Track the package's |
|||
journey from pickup to delivery, with updates at every stage. You'll |
|||
receive notifications via email when the package is out for delivery |
|||
and when it has been successfully delivered. For additional peace of |
|||
mind, opt for our signature confirmation service to ensure your |
|||
package is received by the intended recipient. |
|||
</Text> |
|||
<Text> |
|||
For additional costs for signature confirmation, please to the |
|||
pricing structure |
|||
</Text> |
|||
<button |
|||
className="centeredLogo" |
|||
onClick={() => { |
|||
setModalVisible(true); |
|||
}} |
|||
> |
|||
Pricing Structure |
|||
</button> |
|||
<PopupModal |
|||
visible={modalVisible} |
|||
closeHandler={closeModal} |
|||
title="Pricing Structure" |
|||
content={pricingStructure} |
|||
/> |
|||
</Collapse> |
|||
<Collapse title="Customer Support"> |
|||
<Text> |
|||
QuickDeliver is committed to providing excellent customer service. |
|||
Our support team is available 24/7 to assist with any questions or |
|||
concerns. Whether you need help scheduling a delivery, tracking a |
|||
package, or resolving an issue, we're here to help. Contact us via{" "} |
|||
<a href="tel:999 999 999 999">phone</a>, or{" "} |
|||
<a href="mailto:quickdeliver@example.com">email</a>. |
|||
</Text> |
|||
</Collapse> |
|||
<Collapse title="Returns and Refunds"> |
|||
<Text> |
|||
We understand that sometimes things don't go as planned. |
|||
QuickDeliver offers a straightforward returns and refunds policy to |
|||
ensure customer satisfaction. If your package is damaged or lost |
|||
during transit, you may be eligible for a refund or replacement. |
|||
Contact our customer support team within 7 days of delivery to |
|||
initiate a claim. For packages that need to be returned to the |
|||
sender, we offer discounted return shipping rates. Please{" "} |
|||
<a |
|||
href={redirectLoc} |
|||
onClick={() => { |
|||
saveMouseLog(); |
|||
}} |
|||
> |
|||
{" "} |
|||
contact us |
|||
</a> |
|||
in regards to any returns and refunds. |
|||
</Text> |
|||
</Collapse> |
|||
<Collapse title="Business Solutions"> |
|||
<Text> |
|||
QuickDeliver provides tailored delivery solutions for businesses of |
|||
all sizes. Our business accounts offer benefits such as volume |
|||
discounts, dedicated account managers, and customizable delivery |
|||
options. From e-commerce shipments to important business documents, |
|||
we ensure your packages are delivered efficiently and |
|||
professionally. Sign up for a business account on our website and |
|||
discover how QuickDeliver can streamline your delivery needs and |
|||
enhance your customer experience. |
|||
</Text> |
|||
</Collapse> |
|||
<Collapse title="Safety and Security"> |
|||
<Text> |
|||
The safety and security of your packages are our top priority. |
|||
QuickDeliver employs advanced security measures, including |
|||
tamper-evident packaging and real-time tracking, to protect your |
|||
items during transit. Our couriers undergo thorough background |
|||
checks and training to ensure reliable and professional service. In |
|||
the event of an issue, our dedicated support team is available to |
|||
assist and resolve any concerns promptly. Trust QuickDeliver for a |
|||
secure and worry-free delivery experience. |
|||
</Text> |
|||
</Collapse> |
|||
</Collapse.Group> |
|||
</StudySite> |
|||
); |
|||
} |
|||
|
|||
export default StartPage6; |
Write
Preview
Loading…
Cancel
Save
Reference in new issue