diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..2351d266 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,53 @@ +
+ +# Code of Conduct + +
+ +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +- The use of sexualized language or imagery and unwelcome sexual attention or advances +- Trolling, insulting or derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that do not align with this Code of Conduct. By adopting this Code of Conduct, project maintainers commit themselves to fairly and consistently applying these principles to every aspect of managing this project. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project email address, posting via an official social media account, or acting as an appointed representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project owner. All complaints will be reviewed and investigated promptly and fairly. All project team members are obligated to respect the privacy and security of the reporter of any incident. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project’s leadership. + +You can also tag the admin, if you find anything voilating the Code of Conduct. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/version/2/1/code_of_conduct/), version 2.0, available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Community Impact Guidelines were inspired by Mozilla's code of conduct enforcement ladder. + +For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations. diff --git a/README.md b/README.md index c6b9785d..fb3af533 100644 --- a/README.md +++ b/README.md @@ -135,10 +135,10 @@ Special thanks to our amazing mentors who are guiding this project! πŸ™Œ - - itznayan + + vishnuprasad2004
- Mahera Nayan + Vishnu Prasad Korada
@@ -148,6 +148,20 @@ Special thanks to our amazing mentors who are guiding this project! πŸ™Œ Navneet Dadhich + + + itznayan +
+ Mahera Nayan +
+ + + + AbhijitMotekar99 +
+ Abhijit Motekar +
+ Ayush215mb @@ -161,6 +175,15 @@ Special thanks to our amazing mentors who are guiding this project! πŸ™Œ
Dev Mishra
+ + + + + + jaidh01 +
+ Jai Dhingra +
@@ -176,8 +199,6 @@ Special thanks to our amazing mentors who are guiding this project! πŸ™Œ Sapna Kul - - Syed-Farazuddin @@ -191,13 +212,6 @@ Special thanks to our amazing mentors who are guiding this project! πŸ™Œ
Vaibhav-Kumar-K-R
- - - - vishnuprasad2004 -
- Vishnu Prasad Korada -
diff --git a/frontend/src/App.css b/frontend/src/App.css index 9b6403be..70f99181 100644 --- a/frontend/src/App.css +++ b/frontend/src/App.css @@ -16,4 +16,18 @@ body, body{ background: #F1EADC; -} \ No newline at end of file +} + +.rating-button { + @apply flex-grow bg-neutral-50 text-center p-2 rounded-md cursor-pointer select-none +} + +input[type="radio"] { + display: none; +} + +.star { + cursor: pointer; + font-size: 2rem; + margin-bottom: 0; +} diff --git a/frontend/src/components/Pages/Boardgame.jsx b/frontend/src/components/Pages/Boardgame.jsx index e31ee1bc..e61ab852 100644 --- a/frontend/src/components/Pages/Boardgame.jsx +++ b/frontend/src/components/Pages/Boardgame.jsx @@ -40,177 +40,37 @@ export default function Boardgame() {
-
- - View - - Catan -
-

Catan

-

- Settle the island of Catan in this classic resource management game. -

-
-
-
- - View - - Ticket to Ride -
-

Ticket to Ride

-

- Connect cities across a map and complete your railway routes. -

-
-
-
- - View - - Pandemic -
-

Pandemic

-

- Work together to contain the spread of deadly diseases across the globe. -

-
-
-
- - View - - Codenames -
-

Codenames

-

- Compete to make word associations and guess your teams secret code words. -

-
-
-
- - View - - Azul -
-

Azul

-

- Collect and place beautiful tiles to decorate the walls of a palace. -

+ {[ + { src: board1, title: "Catan", description: "Settle the island of Catan in this classic resource management game." }, + { src: board2, title: "Ticket to Ride", description: "Connect cities across a map and complete your railway routes." }, + { src: board3, title: "Pandemic", description: "Work together to contain the spread of deadly diseases across the globe." }, + { src: board4, title: "Codenames", description: "Compete to make word associations and guess your team's secret code words." }, + { src: board5, title: "Azul", description: "Collect and place beautiful tiles to decorate the walls of a palace." }, + { src: board6, title: "Azul", description: "Collect and place beautiful tiles to decorate the walls of a palace." }, + { src: board7, title: "Azul", description: "Collect and place beautiful tiles to decorate the walls of a palace." }, + { src: board8, title: "Azul", description: "Collect and place beautiful tiles to decorate the walls of a palace." }, + { src: board10, title: "Wingspan", description: "Attract and collect birds in this relaxing engine-building game." }, + ].map((board, index) => ( +
+ + View + +
+ {board.title} +
+

{board.title}

+

{board.description}

+
+
-
-
- - View - - Azul -
-

Azul

-

- Collect and place beautiful tiles to decorate the walls of a palace. -

-
-
-
- - View - - Azul -
-

Azul

-

- Collect and place beautiful tiles to decorate the walls of a palace. -

-
-
-
- - View - - Azul -
-

Azul

-

- Collect and place beautiful tiles to decorate the walls of a palace. -

-
-
-
- - View - - Wingspan -
-

Wingspan

-

- Attract and collect birds in this relaxing engine-building game. -

-
-
+ ))}
diff --git a/frontend/src/components/Pages/Event.jsx b/frontend/src/components/Pages/Event.jsx index 25b674d7..d2434ea9 100644 --- a/frontend/src/components/Pages/Event.jsx +++ b/frontend/src/components/Pages/Event.jsx @@ -94,9 +94,14 @@ export default function Event() { splitText.revert(); }; }, []); + return () => { + tl.kill(); + splitText.revert(); + }; + }, []); useEffect(() => { - new Splide(".splide", { + const splide = new Splide(".splide", { type: "loop", perPage: 1, perMove: 1, @@ -108,7 +113,11 @@ export default function Event() { pagination: false, gap: "2rem", }).mount({ AutoScroll }); + return () => { + splide.destroy(); + }; }, []); + return ( <>
diff --git a/frontend/src/components/Pages/Register.jsx b/frontend/src/components/Pages/Register.jsx index f3b940b5..5ef6dbf5 100644 --- a/frontend/src/components/Pages/Register.jsx +++ b/frontend/src/components/Pages/Register.jsx @@ -142,90 +142,34 @@ export default function Register() {
-
-
- Catan -
Catan
-
4-6 players
-
-
-
-
- Ticket to Ride -
Ticket to Ride
-
2-5 players
-
-
-
-
- Codenames -
Codenames
-
4-8 players
-
-
-
-
- Codenames -
Codenames
-
4-8 players
-
-
-
-
- Codenames -
Codenames
-
4-8 players
-
-
-
-
- Pandemic -
Pandemic
-
2-4 players
+ {[ + { src: pic2, title: "Catan", players: "4-6 players" }, + { src: pic3, title: "Ticket to Ride", players: "2-5 players" }, + { src: pic4, title: "Codenames", players: "4-8 players" }, + { src: pic4, title: "Codenames", players: "4-8 players" }, + { src: pic4, title: "Codenames", players: "4-8 players" }, + { src: pic5, title: "Pandemic", players: "2-4 players" }, + ].map((game, index) => ( +
+
+ {game.title} +
{game.title}
+
+ {game.players} +
+
+ {/* Glow effect */} +
-
+ ))}
diff --git a/frontend/src/components/ui/FeedbackForm.jsx b/frontend/src/components/ui/FeedbackForm.jsx index 620724f8..396fd658 100644 --- a/frontend/src/components/ui/FeedbackForm.jsx +++ b/frontend/src/components/ui/FeedbackForm.jsx @@ -2,6 +2,7 @@ import { useState } from "react"; import { motion } from "framer-motion"; import { useInView } from "react-intersection-observer"; import chess from "../../assets/img/chess.gif"; +import { FaStar } from "react-icons/fa6"; const FeedbackForm = () => { const { ref, inView } = useInView({ @@ -18,11 +19,28 @@ const FeedbackForm = () => { const [email, setEmail] = useState(""); const [feedback, setFeedback] = useState(""); const [submitted, setSubmitted] = useState(false); + + const [rating, setRating] = useState(null); + + const [hover, setHover] = useState(null); + const [totalStars, setTotalStars] = useState(5); const [error, setError] = useState(null); const [isLoading, setIsLoading] = useState(false); + const handleSubmit = async (e) => { e.preventDefault(); + + console.log(`Name: ${name}, Email: ${email}, Feedback: ${feedback}, rating: ${rating}`); + setSubmitted(true); + setTimeout(() => { + setName(""); + setEmail(""); + setFeedback(""); + setRating(null); + setSubmitted(false); + }, 3000); + setIsLoading(true); try { const response = await fetch(`${API_URL}/feedback/create`, { @@ -55,6 +73,7 @@ const FeedbackForm = () => { } finally { setIsLoading(false); } + }; return ( @@ -65,13 +84,13 @@ const FeedbackForm = () => { initial="hidden" animate={inView ? "visible" : "hidden"} variants={animationVariants} - className="lg:grid lg:grid-cols-2 lg:gap-8" + className="lg:grid lg:grid-cols-2 lg:gap-8 lg:items-center" >
-

- We Value Your Feedback +

+ We value Your Feedback!

-

+

Your thoughts help us improve. Share your experience and suggestions with us!

@@ -84,34 +103,36 @@ const FeedbackForm = () => {
-
-
+
+
- + */} setName(e.target.value)} required className="mt-1 block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-[#004D43] focus:border-[#004D43]" />
- + */} setEmail(e.target.value)} required @@ -119,25 +140,52 @@ const FeedbackForm = () => { />
- + */}
+
+ {[...Array(totalStars)].map((star, index) => { + const currentRating = index + 1; + return ( + + ); + })} +
@@ -145,8 +193,8 @@ const FeedbackForm = () => { {submitted && ( Thank you for your feedback! diff --git a/frontend/src/index.css b/frontend/src/index.css index 4890a8c2..9b68d3d7 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -42,4 +42,5 @@ background-color: #004D43; border-radius: 10px; } - \ No newline at end of file + + \ No newline at end of file