diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000..aedcd321 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,97 @@ +name: Bug Report +description: Report a bug or issue with the Audemy platform +title: "[BUG]: " +labels: [bug] +body: + - type: markdown + attributes: + value: | + ## 🐞 Bug Reporting Guidelines + Please follow this structured format to help us fix issues quickly. Make sure the bug is reproducible and hasn't already been reported. + + - type: input + id: title + attributes: + label: Short bug title + description: A clear, concise summary of the issue + placeholder: "[Bug] Submit button unresponsive after second question in Addition Game" + validations: + required: true + + - type: textarea + id: description + attributes: + label: Describe the bug + description: What happened and what should have happened? + placeholder: "After answering the second question in the Addition Game, the Submit button stops responding..." + validations: + required: true + + - type: textarea + id: steps + attributes: + label: Steps to reproduce + description: List the steps to reproduce the issue + placeholder: | + 1. Go to the Game Zone + 2. Open the Addition Game + 3. Answer the first two questions + 4. Try clicking the "Submit" button on the third question + 5. Notice that nothing happens + validations: + required: true + + - type: textarea + id: expected + attributes: + label: Expected behavior + description: What should have happened? + placeholder: "The Submit button should validate the answer, provide feedback, and move to the next question." + validations: + required: true + + - type: textarea + id: actual + attributes: + label: Actual behavior + description: What actually happened? + placeholder: "The button appears clickable but does nothing and no feedback is shown." + validations: + required: true + + - type: textarea + id: media + attributes: + label: Screenshots or recordings + description: If applicable, drag and drop images or video clips that show the bug. + placeholder: "Attach any relevant media files here." + + - type: textarea + id: environment + attributes: + label: Environment details + description: Add device, OS, and version information + placeholder: | + - Device: Desktop + - OS: macOS Sonoma + - Frontend Version: v0.3.4 + - Backend Version: main@6f9c2d1 + + - type: textarea + id: context + attributes: + label: Additional context + description: Any other info (e.g., logged in or not, using a screen reader, keyboard-only navigation, frequency of bug) + placeholder: "Happens every time; using VoiceOver on macOS; logged in as student" + + - type: checkboxes + id: confirm + attributes: + label: Before submitting + options: + - label: I have searched for existing bug reports. + required: true + - label: I am using the latest version of Audemy. + required: true + - label: I can reliably reproduce this bug. + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..8005e322 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,2 @@ +blank_issues_enabled: false +contact_links: [] diff --git a/.github/ISSUE_TEMPLATE/enhancement_request.yml b/.github/ISSUE_TEMPLATE/enhancement_request.yml new file mode 100644 index 00000000..9295616c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/enhancement_request.yml @@ -0,0 +1,38 @@ +name: Enhancement Request +description: Propose an improvement to an existing Audemy feature +title: "[ENHANCEMENT]: " +labels: [enhancement] +body: + - type: markdown + attributes: + value: "## 🔧 Enhancement Request\nUse this form to improve existing features in Audemy." + + - type: textarea + id: current + attributes: + label: What feature are you enhancing? + placeholder: "Describe the current feature." + validations: + required: true + + - type: textarea + id: improvement + attributes: + label: What improvement would you like to see? + placeholder: "Explain what should be improved and why." + validations: + required: true + + - type: textarea + id: benefit + attributes: + label: How will this benefit users? + placeholder: "Tell us how this improves user experience or functionality." + + - type: checkboxes + id: confirm + attributes: + label: Before submitting + options: + - label: I’ve checked for similar enhancement requests. + required: true diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 00000000..1547d2db --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,38 @@ +name: Feature Request +description: Suggest a new feature for Audemy +title: "[FEATURE]: " +labels: [feature] +body: + - type: markdown + attributes: + value: "## 🎯 Feature Request\nUse this form to suggest a new feature you'd like to see in Audemy." + + - type: textarea + id: description + attributes: + label: Describe the feature + placeholder: "Clearly and concisely describe the feature." + validations: + required: true + + - type: textarea + id: value + attributes: + label: Why is this feature important? + placeholder: "Explain how this helps users or improves the product." + validations: + required: true + + - type: textarea + id: solution + attributes: + label: Possible implementation + placeholder: "Optional: any ideas on how to implement it?" + + - type: checkboxes + id: confirm + attributes: + label: Before submitting + options: + - label: I have searched for existing feature requests. + required: true diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 00000000..5e239fde --- /dev/null +++ b/.prettierrc @@ -0,0 +1,11 @@ +{ + "semi": true, + "singleQuote": true, + "trailingComma": "es5", + "tabWidth": 2, + "printWidth": 80, + "arrowParens": "always", + "bracketSpacing": true, + "htmlWhitespaceSensitivity": "css", + "vueIndentScriptAndStyle": false +} diff --git a/public/assets/images/about-us/volunteers/ankita.png b/public/assets/images/about-us/volunteers/ankita.png new file mode 100644 index 00000000..47a6343c Binary files /dev/null and b/public/assets/images/about-us/volunteers/ankita.png differ diff --git a/public/assets/images/about-us/volunteers/doohwan.png b/public/assets/images/about-us/volunteers/doohwan.png new file mode 100644 index 00000000..1f7baf57 Binary files /dev/null and b/public/assets/images/about-us/volunteers/doohwan.png differ diff --git a/public/assets/images/about-us/volunteers/isabelle.png b/public/assets/images/about-us/volunteers/isabelle.png new file mode 100644 index 00000000..26ff1f42 Binary files /dev/null and b/public/assets/images/about-us/volunteers/isabelle.png differ diff --git a/public/assets/images/about-us/volunteers/jesus.png b/public/assets/images/about-us/volunteers/jesus.png new file mode 100644 index 00000000..6d17bf55 Binary files /dev/null and b/public/assets/images/about-us/volunteers/jesus.png differ diff --git a/public/assets/images/about-us/volunteers/rajat.png b/public/assets/images/about-us/volunteers/rajat.png new file mode 100644 index 00000000..d031b8b4 Binary files /dev/null and b/public/assets/images/about-us/volunteers/rajat.png differ diff --git a/src/pages/AboutUs/Volunteers/Staff.js b/src/pages/AboutUs/Volunteers/Staff.js index 895a0740..e40c5ba4 100644 --- a/src/pages/AboutUs/Volunteers/Staff.js +++ b/src/pages/AboutUs/Volunteers/Staff.js @@ -124,11 +124,37 @@ const developmentStaff = [ name: "Shyaka Chaste", role: "Developer", image: "/assets/images/about-us/volunteers/shyaka.png", - },{ + }, + { name: "Prajwala Shambulingappa", role: "Developer", image: "/assets/images/about-us/volunteers/default1.svg", }, + { + name: "Ankita Shendge", + role: "Developer", + image: "/assets/images/about-us/volunteers/ankita.png", + }, + { + name: "Isabelle Huang", + role: "Developer", + image: "/assets/images/about-us/volunteers/isabelle.png", + }, + { + name: "DooHwan Kim", + role: "Developer", + image: "/assets/images/about-us/volunteers/doohwan.png", + }, + { + name: "Jesus Luigi Sison", + role: "Developer", + image: "/assets/images/about-us/volunteers/jesus.png", + }, + { + name: "Rajat Kulkarni", + role: "Developer", + image: "/assets/images/about-us/volunteers/rajat.png", + }, ]; const outreachStaff = [ diff --git a/src/pages/ForgotPassword/ForgotPassword.vue b/src/pages/ForgotPassword/ForgotPassword.vue index 68aa1ed4..fa3588d9 100644 --- a/src/pages/ForgotPassword/ForgotPassword.vue +++ b/src/pages/ForgotPassword/ForgotPassword.vue @@ -7,6 +7,10 @@ const errors = ref(false); // flag to display error on frontend const email = ref(""); // email input field value const router = useRouter(); +const showErrorAlert = (message) => { + alert(message); // Using standard alert for simplicity +}; + const sendResetEmail = async (event) => { // prevent default form submission which would reload the page event.preventDefault(); @@ -26,19 +30,57 @@ const sendResetEmail = async (event) => { ); // Handle the response from the API based on the status code console.log("Response:", emailResponse.status) - if (emailResponse.status === 404) { - // Set the flag to true to display the error message on the frontend - console.error("Error: User with provided email id not present."); - errors.value = true; - } else{ + // Get the response data + const responseData = await emailResponse.json().catch(() => ({})); + + if (!emailResponse.ok) { + switch (emailResponse.status) { + case 400: + showErrorAlert("Bad request: Please check your input"); + break; + case 401: + showErrorAlert("Unauthorized: Invalid credentials"); + break; + case 403: + showErrorAlert("Forbidden: You don't have permission to access this resource"); + break; + case 404: + showErrorAlert("Resource not found"); + break; + case 405: + showErrorAlert("Method not allowed"); + break; + case 429: + showErrorAlert("Too many requests: Please try again later"); + break; + case 500: + showErrorAlert("Internal server error. Please try again later."); + break; + case 502: + showErrorAlert("Internal server error. Please try again later."); + break; + case 503: + showErrorAlert("Internal server error. Please try again later."); + break; + case 504: + showErrorAlert("Internal server error. Please try again later."); + break; + default: + // Handle other errors + alert('Unexpected error occurred.'); + } + // Return to prevent further execution + return; + } else { // Route to reset-link-sent page if email sent successfully console.log("Email sent successfully."); router.push("/reset-link-sent"); } } catch (error) { - // Set the flag to true to display the error message on the frontend - console.error("Error: Email not present- ", error); + // Handle network errors + console.error("Error: ", error); errors.value = true; + alert('Network error. Please check your connection and try again.'); } }; diff --git a/src/pages/GameZone/GameZoneCard/GameZoneCard.vue b/src/pages/GameZone/GameZoneCard/GameZoneCard.vue index e4aa1e9a..692f609f 100644 --- a/src/pages/GameZone/GameZoneCard/GameZoneCard.vue +++ b/src/pages/GameZone/GameZoneCard/GameZoneCard.vue @@ -14,20 +14,20 @@ const props = defineProps({