Skip to content

Commit

Permalink
feat: Registration ticket component
Browse files Browse the repository at this point in the history
Staging to Production
  • Loading branch information
rusiruavb authored Jun 4, 2022
2 parents 927f74c + 4243715 commit 3dc5285
Show file tree
Hide file tree
Showing 13 changed files with 229 additions and 84 deletions.
4 changes: 4 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,16 @@
"@testing-library/react": "^13.0.0",
"@testing-library/user-event": "^13.2.1",
"dayjs": "^1.11.2",
"emailjs": "^4.0.0",
"env-cmd": "^10.1.0",
"firebase": "^9.8.2",
"html-to-image": "^1.9.0",
"moment": "^2.29.3",
"react": "^18.1.0",
"react-dom": "^18.1.0",
"react-icons": "^4.4.0",
"react-multi-carousel": "^2.8.0",
"react-qr-code": "^2.0.7",
"react-scripts": "5.0.1",
"react-scroll": "^1.8.7",
"react-vertical-timeline-component": "^3.5.2",
Expand Down
File renamed without changes.
Binary file removed src/assets/logo/mini_hackathon_logo.png
Binary file not shown.
56 changes: 28 additions & 28 deletions src/components/Footer/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,72 +4,72 @@ import MLSALogo from "../../assets/logo/mlsa_logo.png";

const Footer = () => {
return (
<footer class="p-4 bg-white shadow md:px-20 md:py-8">
<hr class="my-6 border-gray-200 sm:mx-auto dark:border-gray-700 lg:my-8" />
<div class="sm:flex sm:items-center sm:justify-between">
<footer className="p-4 bg-white shadow md:px-20 md:py-8">
<hr className="my-6 border-gray-200 sm:mx-auto dark:border-gray-700 lg:my-8" />
<div className="sm:flex sm:items-center sm:justify-between">
<div className="flex mt-4 space-x-4 justify-center sm:mt-0">
<a
href="https://msclubsliit.org/"
class="flex items-center mb-4 sm:mb-0"
className="flex items-center mb-4 sm:mb-0"
>
<img src={MSLogo} class="mr-3 h-12" alt="MS Club Of SLIIT" />
<img src={MSLogo} className="mr-3 h-12" alt="MS Club Of SLIIT" />
</a>
<a
href="https://studentambassadors.microsoft.com/"
class="flex items-center mb-4 sm:mb-0"
className="flex items-center mb-4 sm:mb-0"
>
<img src={MLSALogo} class="mr-3 h-12" alt="MS Club Of SLIIT" />
<img src={MLSALogo} className="mr-3 h-12" alt="MS Club Of SLIIT" />
</a>
</div>

<span class="block text-sm text-gray-800 text-center font-medium">
<span className="block text-sm text-gray-800 text-center font-medium">
Copyright © 2022{" "}
<a href="https://msclubsliit.org/" class="hover:underline">
<a href="https://msclubsliit.org/" className="hover:underline">
MS Club of SLIIT
</a>
. All Rights Reserved.
</span>
<div class="flex mt-4 space-x-6 justify-center sm:mt-0">
<div className="flex mt-4 space-x-6 justify-center sm:mt-0">
<a
href="https://www.facebook.com/msclubsliit"
class="text-gray-500 hover:text-black dark:hover:text-black"
className="text-gray-500 hover:text-black dark:hover:text-black"
>
<svg
class="w-5 h-5"
className="w-5 h-5"
fill="currentColor"
viewBox="0 0 24 24"
aria-hidden="true"
>
<path
fill-rule="evenodd"
fillRule="evenodd"
d="M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12c0 4.991 3.657 9.128 8.438 9.878v-6.987h-2.54V12h2.54V9.797c0-2.506 1.492-3.89 3.777-3.89 1.094 0 2.238.195 2.238.195v2.46h-1.26c-1.243 0-1.63.771-1.63 1.562V12h2.773l-.443 2.89h-2.33v6.988C18.343 21.128 22 16.991 22 12z"
clip-rule="evenodd"
clipRule="evenodd"
/>
</svg>
</a>
<a
href="https://www.linkedin.com/company/msclubsliit"
class="text-gray-500 hover:text-black dark:hover:text-black"
className="text-gray-500 hover:text-black dark:hover:text-black"
>
<svg
class="w-5 h-5"
className="w-5 h-5"
fill="currentColor"
viewBox="0 0 24 24"
aria-hidden="true"
>
<path
fill-rule="evenodd"
fillRule="evenodd"
d="M12.315 2c2.43 0 2.784.013 3.808.06 1.064.049 1.791.218 2.427.465a4.902 4.902 0 011.772 1.153 4.902 4.902 0 011.153 1.772c.247.636.416 1.363.465 2.427.048 1.067.06 1.407.06 4.123v.08c0 2.643-.012 2.987-.06 4.043-.049 1.064-.218 1.791-.465 2.427a4.902 4.902 0 01-1.153 1.772 4.902 4.902 0 01-1.772 1.153c-.636.247-1.363.416-2.427.465-1.067.048-1.407.06-4.123.06h-.08c-2.643 0-2.987-.012-4.043-.06-1.064-.049-1.791-.218-2.427-.465a4.902 4.902 0 01-1.772-1.153 4.902 4.902 0 01-1.153-1.772c-.247-.636-.416-1.363-.465-2.427-.047-1.024-.06-1.379-.06-3.808v-.63c0-2.43.013-2.784.06-3.808.049-1.064.218-1.791.465-2.427a4.902 4.902 0 011.153-1.772A4.902 4.902 0 015.45 2.525c.636-.247 1.363-.416 2.427-.465C8.901 2.013 9.256 2 11.685 2h.63zm-.081 1.802h-.468c-2.456 0-2.784.011-3.807.058-.975.045-1.504.207-1.857.344-.467.182-.8.398-1.15.748-.35.35-.566.683-.748 1.15-.137.353-.3.882-.344 1.857-.047 1.023-.058 1.351-.058 3.807v.468c0 2.456.011 2.784.058 3.807.045.975.207 1.504.344 1.857.182.466.399.8.748 1.15.35.35.683.566 1.15.748.353.137.882.3 1.857.344 1.054.048 1.37.058 4.041.058h.08c2.597 0 2.917-.01 3.96-.058.976-.045 1.505-.207 1.858-.344.466-.182.8-.398 1.15-.748.35-.35.566-.683.748-1.15.137-.353.3-.882.344-1.857.048-1.055.058-1.37.058-4.041v-.08c0-2.597-.01-2.917-.058-3.96-.045-.976-.207-1.505-.344-1.858a3.097 3.097 0 00-.748-1.15 3.098 3.098 0 00-1.15-.748c-.353-.137-.882-.3-1.857-.344-1.023-.047-1.351-.058-3.807-.058zM12 6.865a5.135 5.135 0 110 10.27 5.135 5.135 0 010-10.27zm0 1.802a3.333 3.333 0 100 6.666 3.333 3.333 0 000-6.666zm5.338-3.205a1.2 1.2 0 110 2.4 1.2 1.2 0 010-2.4z"
clip-rule="evenodd"
clipRule="evenodd"
/>
</svg>
</a>
<a
href="https://www.instagram.com/msclub.sliit/"
class="text-gray-500 hover:text-black dark:hover:text-black"
className="text-gray-500 hover:text-black dark:hover:text-black"
>
<svg
class="w-5 h-5"
className="w-5 h-5"
fill="currentColor"
viewBox="0 0 24 24"
aria-hidden="true"
Expand All @@ -79,35 +79,35 @@ const Footer = () => {
</a>
<a
href="https://www.instagram.com/msclub.sliit/"
class="text-gray-500 hover:text-black dark:hover:text-black"
className="text-gray-500 hover:text-black dark:hover:text-black"
>
<svg
class="w-5 h-5"
className="w-5 h-5"
fill="currentColor"
viewBox="0 0 24 24"
aria-hidden="true"
>
<path
fill-rule="evenodd"
fillRule="evenodd"
d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z"
clip-rule="evenodd"
clipRule="evenodd"
/>
</svg>
</a>
<a
href="https://msclubsliit.org/"
class="text-gray-500 hover:text-black dark:hover:text-black"
className="text-gray-500 hover:text-black dark:hover:text-black"
>
<svg
class="w-5 h-5"
className="w-5 h-5"
fill="currentColor"
viewBox="0 0 24 24"
aria-hidden="true"
>
<path
fill-rule="evenodd"
fillRule="evenodd"
d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10c5.51 0 10-4.48 10-10S17.51 2 12 2zm6.605 4.61a8.502 8.502 0 011.93 5.314c-.281-.054-3.101-.629-5.943-.271-.065-.141-.12-.293-.184-.445a25.416 25.416 0 00-.564-1.236c3.145-1.28 4.577-3.124 4.761-3.362zM12 3.475c2.17 0 4.154.813 5.662 2.148-.152.216-1.443 1.941-4.48 3.08-1.399-2.57-2.95-4.675-3.189-5A8.687 8.687 0 0112 3.475zm-3.633.803a53.896 53.896 0 013.167 4.935c-3.992 1.063-7.517 1.04-7.896 1.04a8.581 8.581 0 014.729-5.975zM3.453 12.01v-.26c.37.01 4.512.065 8.775-1.215.25.477.477.965.694 1.453-.109.033-.228.065-.336.098-4.404 1.42-6.747 5.303-6.942 5.629a8.522 8.522 0 01-2.19-5.705zM12 20.547a8.482 8.482 0 01-5.239-1.8c.152-.315 1.888-3.656 6.703-5.337.022-.01.033-.01.054-.022a35.318 35.318 0 011.823 6.475 8.4 8.4 0 01-3.341.684zm4.761-1.465c-.086-.52-.542-3.015-1.659-6.084 2.679-.423 5.022.271 5.314.369a8.468 8.468 0 01-3.655 5.715z"
clip-rule="evenodd"
clipRule="evenodd"
/>
</svg>
</a>
Expand Down
4 changes: 2 additions & 2 deletions src/components/Navbar/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ const Header = () => {
<li
key={item.name}
to={item.to}
duration={item.duration}
duration={500}
className="-m-3 p-3 flex items-center rounded-md hover:bg-gray-50"
>
<span className="ml-3 text-base font-medium text-gray-700 cursor-pointer">
Expand All @@ -174,7 +174,7 @@ const Header = () => {
spy={true}
smooth={true}
offset={50}
duration={item.duration}
duration={500}
delay={100}
>
{item.name}
Expand Down
99 changes: 99 additions & 0 deletions src/components/Ticket/index.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
import React, { useCallback, useRef } from "react";
import { toPng } from "html-to-image";
import QRCode from "react-qr-code";
import moment from "moment";

/**
*
* @param {{
* headerImage: "",
* ticketNo: "",
* studentName: "",
* studentItNo: "",
* title: "",
* subTitle: "",
* date: "",
* url: "",
* }} props
* @property url - The url is required to generate the QR code
* @example
* <Ticket
headerImage={logo}
title="Mini Hackathon 2022"
subTitle="Awareness Session 📣"
date={new Date()}
ticketNo="334535"
studentItNo="IT19104218"
studentName="Rusiru Abhisheak"
url={SessionInfo.awarenessSessionLink}
/>
*/
const Ticket = (props) => {
const isDebugModeOn = false;
const ref = useRef(null);

const onButtonClick = useCallback(() => {
if (ref.current === null) {
return;
}

toPng(ref.current, { cacheBust: true })
.then((dataUrl) => {
const link = document.createElement("a");
link.download = `${props.studentItNo}.png`;
link.href = dataUrl;
link.click();
})
.catch((err) => {
isDebugModeOn && console.log(err);
});
}, [ref, isDebugModeOn, props.studentItNo]);

return (
<div>
<div className="m-6 flex justify-center">
<div
ref={ref}
className="bg-white w-5/12 rounded-lg border-2 border-gray-600"
>
<div className="p-4">
<div className="grid grid-cols-2 gap-0">
<div>
<img src={props.headerImage} alt="logo" width={100} />
<div className="flex font-semibold text-xl">{props.title}</div>
<div>{props.subTitle}</div>
<div>{moment(props.date).format("LLL")}</div>
<div className="text-2xl font-bold mt-3">
{props.ticketNo}
</div>
<div className="flex">
<div>{props.studentItNo}</div>
<div className="ml-5">{props.studentName}</div>
</div>
</div>
<div>
<div className="flex justify-end">
<QRCode value={props.url} size={180} />
</div>
<div className="flex justify-end">
<small className="">Scan the code to join</small>
</div>
</div>
</div>
</div>
</div>
</div>

<div className="flex justify-center">
<button
onClick={onButtonClick}
className="bg-black text-white hover:bg-gray-300 hover:text-black transition duration-0 hover:duration-500 rounded border-0 pt-2 pb-2 pl-4 pr-4"
>
Save My Ticket
</button>
</div>
</div>
);
};

export default Ticket;
3 changes: 2 additions & 1 deletion src/components/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import Footer from "./Footer";
import Navbar from "./Navbar";
import TimelineComponent from "./TimelineCard";
import Ticket from "./Ticket";

export { Footer, Navbar, TimelineComponent };
export { Footer, Navbar, TimelineComponent, Ticket };
9 changes: 8 additions & 1 deletion src/configs/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,11 @@ const FirebaseConfigs = {
MEASUREMENT_ID: process.env.REACT_APP_MEASUREMENT_ID,
};

export { FirebaseConfigs };
const emailConfigs = {
USER_NAME: process.env.REACT_APP_MAIL_USER_NAME,
PASSWORD: process.env.REACT_APP_MAIL_PASSWORD,
HOST: process.env.REACT_APP_MAIL_HOST,
SSL: process.env.REACT_APP_MAIL_SSL,
};

export { FirebaseConfigs, emailConfigs };
3 changes: 3 additions & 0 deletions src/data/Sessions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"awarenessSessionLink": "https://teams.microsoft.com/l/meetup-join/19%3a6646ce03cf974130b2a09e76bd7d35d3%40thread.tacv2/1654087666693?context=%7b%22Tid%22%3a%2244e3cf94-19c9-4e32-96c3-14f5bf01391a%22%2c%22Oid%22%3a%22e65f5f7d-c523-492e-a1af-be2b1c6d9cd3%22%7d"
}
Empty file added src/utils/emailSend.js
Empty file.
16 changes: 8 additions & 8 deletions src/views/Sponsors/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,26 +10,26 @@ const Sponsers = () => {

<div className="grid grid-cols-1 md:grid-cols-4 gap-4">
<div className="flex justify-center">
<a href="https://msclubsliit.org/" class="mb-4 sm:mb-0">
<img src={CompanyLogo1} class="h-40" alt="MS Club Of SLIIT" />
<a href="https://msclubsliit.org/" className="mb-4 sm:mb-0">
<img src={CompanyLogo1} className="h-40" alt="MS Club Of SLIIT" />
</a>
</div>

<div className="flex justify-center">
<a href="https://msclubsliit.org/" class="mb-4 sm:mb-0">
<img src={CompanyLogo1} class="h-40" alt="MS Club Of SLIIT" />
<a href="https://msclubsliit.org/" className="mb-4 sm:mb-0">
<img src={CompanyLogo1} className="h-40" alt="MS Club Of SLIIT" />
</a>
</div>

<div className="flex justify-center">
<a href="https://msclubsliit.org/" class="mb-4 sm:mb-0">
<img src={CompanyLogo1} class="h-40" alt="MS Club Of SLIIT" />
<a href="https://msclubsliit.org/" className="mb-4 sm:mb-0">
<img src={CompanyLogo1} className="h-40" alt="MS Club Of SLIIT" />
</a>
</div>

<div className="flex justify-center">
<a href="https://msclubsliit.org/" class="mb-4 sm:mb-0">
<img src={CompanyLogo1} class="h-40" alt="MS Club Of SLIIT" />
<a href="https://msclubsliit.org/" className="mb-4 sm:mb-0">
<img src={CompanyLogo1} className="h-40" alt="MS Club Of SLIIT" />
</a>
</div>
</div>
Expand Down
9 changes: 6 additions & 3 deletions src/views/Timeline/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,12 @@ const Timeline = () => (
Timeline
</h1>
<VerticalTimeline lineColor={"black"}>
{TimelineData.data.map((singleTimelineDetails) => {
return <TimelineComponent data={singleTimelineDetails} />;
})}
{TimelineData.data.map((singleTimelineDetails) => (
<TimelineComponent
key={singleTimelineDetails.id}
data={singleTimelineDetails}
/>
))}
</VerticalTimeline>
</div>
);
Expand Down
Loading

0 comments on commit 3dc5285

Please sign in to comment.