Giter Club home page Giter Club logo

examtime's Introduction

This Project is a part of

GSSoC GSSoC

ExamTime

#Table Of Contents - Introdution - Tech Stack - Environment Variables - Installation Guide - Contributing Guidelines - Code of Conduct - Licenses - Contributors

ExamTime is a platform designed to facilitate exam preparation by providing a centralized location for sharing and downloading notes in PDF format. Whether you're a student looking for study materials or someone willing to contribute by sharing your notes, ExamTime aims to make exam preparation more efficient and collaborative.

Contributing in open source increases your opportunities to work with different projects and mentors, getting to know various insights and ideas. It is a platform where contributors grow together with a construvtive and a positive attitude.

Discord

GitHub issues GitHub forks GitHub pull requests GitHub Repo stars GitHub contributors Website


High VoltageTech Stack




Rocket Let's get started

Environment Variables

To run this project, you will need to add the following environment variables to your .env file. You can refer to the .env.dev file located in both the server and client directories.

For server

  • PORT
  • MONGODB_URI
  • SECRET
  • ORIGIN

For client

  • VITE_BASE_URL

Run Locally

Fork the repository

Clone the project

git clone https://github.com/<your_username>/ExamTime.git

Navigate to the server directory

cd server

Install server dependencies

npm install

Start the server

npm run dev

Navigate to the client directory

cd ../client

Install client dependencies

npm install

Start the client

npm run dev

Start Contribution

Update existing branch

git checkout main
git pull origin main

Create a new branch

git checkout -b feature/my-feature

Make desired changes in code

Commit changes

git add .
git commit -m "Add feature XYZ"

Pushing changes

git push -u origin feature/my-feature

Now review the changes and you are all set to make your Pull Request 🥳


Page with Curl Contributing Guideline


  • Read our CONTRIBUTING GUIDELINE to get all details about contributing to ExamTime
  • Learn all about development process and all information you need to contribute to our project
  • If you are having the basic queries make sure you checkout resources there

Handshake Code of Conduct


  • Please note that this project is released with CODE OF CONDUCT. By participating in this project you agree to abide by its terms.

License

MIT



Red Heart Contributors


  • This project thanking all the contributors for having your valuable contribution to our project
  • Make sure you show some love by giving ⭐ to our repository


Back to top

examtime's People

Contributors

anglerfishlyy avatar bherusinghpanwar avatar chetan-jalandharia avatar cs251000 avatar dakshsinghrathore avatar dhairyathedev avatar dhruv8433 avatar ezhil56x avatar harmeetsingh11 avatar hasmithagunda123 avatar hereisswapnil avatar lavanyaaa25 avatar mayur-666 avatar meetdod avatar mukulpythondev avatar praveenkumar5048 avatar pspriyanshu601 avatar puskar-roy avatar ramu-chiluveru avatar richardar avatar sachins0 avatar sahilll15 avatar saksham1411 avatar samarpitadas avatar sarthak027 avatar subhash23jan avatar suhanipaliwal avatar tanmaykalra09 avatar tapesh-1308 avatar vi-shub avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

examtime's Issues

feat:Handle form validations using toastify library

Description:

Enhance the user experience on the registration page as well as the login page by implementing form validation using React Toastify. This will provide users with real-time feedback on their input and improve the overall usability of the registration form.

Tasks:

  1. Integrate React Toastify: Install and configure React Toastify library in the project to display toast notifications for form validation messages.

    • Steps to Implement:
      1. Install React Toastify package using npm or yarn.
      2. Configure React Toastify to display notifications at appropriate positions on the screen.
    • Expected Outcome: React Toastify should be successfully integrated into the project, ready to display form validation messages.
  2. Frontend Form Validation: Implement frontend form validation logic to check the validity of input fields and display corresponding toast notifications using React Toastify.

    • Steps to Implement:
      1. Write JavaScript/React code to validate user input in the registration form fields.
      2. Utilize React Toastify to display toast notifications for validation errors such as empty fields, invalid email format, or password mismatch.
    • Expected Outcome: Users should receive immediate feedback via toast notifications when they enter invalid data in the registration form.

Girlscript Summer of Code Introduction/Tracking

👋 Hi @hereisSwapnil,

I am Prince,web developer(Core Team) Girlscript Summer of Code. I'll be collaborating with you on preparing your repo for GSSoC'24 Program

Why are these changes required?
After Analysing last year's contributions and feedback it would be great for students to have a couple of standard readme files on the repo to understand what the project is all about and some issues detailing what they can contribute. This will help you to see increased engagement in your repository as well.

As mentioned students get a chance to learn step by step, how to build this project as well as invite mentors to collaborate and add features to this repo. I will generate issues, which will provide guidance on how to prepare your repo for Girlscript summer of code 2024 on 10th May.

This issue will serve as a tracking issue to track all issues related to GSSoC'24. I recommend creating a new branch for every issue and opening a pull request to track changes so we can effectively collaborate with each other and merge changes when you and I feel like those changes are ready to be merged on your primary branch.

If you have any questions or concerns, please feel free to leave a comment on this issue or any of the other issues that are generated.

I look forward to working with you :octocat:

Adding LIKE functionality and making UI enhancement of the notes popup

@hereisSwapnil
The LIKE button in the notes pop up while clicking on a particular notes, is not working .I am a gssoc'24 contributor. I would like to work on this issue while making the UI better for the popup notes. Can you please assign this to me.

Screenshot 2024-05-10 155753

Additionally after SIGN UP it is not navigating properly to the home page or to the SIGN IN page. I would also like to fix this issue.

Add a new combobox

I want you to merge these to fields and make a combo box which will suggest subjects when you type and if it does not exists then it will create a new one.

Also connect it with backend

image

Add a settings page

Settings page will contain the functions like to change the theme, manage account settings, etc.

Problems with Signin/Signout session

When registering the page should automatically render the login page which is not the case here. Also on clicking Signout there is no response.

Kindly assign me this issue under gssoc24

Implement ZOD Validation for Email and Username Formatting During Registration

Currently, our registration process lacks validation for the correct formatting of email addresses and usernames. To improve data integrity and user experience, we propose implementing ZOD validation to ensure that users provide correctly formatted data during registration.

  1. Integrate ZOD (Zero-Overhead Data Validation) library into our registration process to validate email addresses and usernames.
  2. Define validation schemas for email addresses and usernames to enforce correct formatting, including length constraints.
  3. When a user attempts to register, validate the provided email address and username against the defined schemas.
  4. If the data provided by the user does not meet the validation criteria, display a toast error message indicating the specific validation errors encountered.
  5. Prompt the user to correct the errors and resubmit the registration form.

feat:addition of the profile page

Create a dedicated profile page for users on the platform, accessible to all users
This page will serve as a centralized hub for users to:
Showcase personal information
Display their projects and contributions
Highlight other relevant details

Implementation will involve:
Fetching and displaying repositories associated with the user's GitHub account based on their username
Integrating a form for users to edit and customize their profile details

assign this to me

feat:addition of reset password feature

This feature enhancement focuses on implementing a reset password functionality to provide users with a secure and reliable method for regaining access to their accounts in the GirlScript project. The reset password feature is essential for enhancing user experience and ensuring the security of user accounts by allowing users to reset their passwords in the event of forgetting them or suspecting unauthorized access.

Tasks:
Design and implement the reset password user interface.
Create backend endpoints to handle password reset requests.
Generate and send password reset emails with secure reset links.
Implement logic for validating and processing password reset tokens.
Provide clear instructions and guidance for users on how to reset their passwords.
Enhance security measures by enforcing password strength requirements.
Test the reset password flow thoroughly to ensure functionality and security.

feature: Bookmark notes feature

We're excited to propose the implementation of a new feature called Bookmark Notes on our website, aimed at empowering students to streamline their note-taking experience and enhance their study routines. Bookmark Notes will revolutionize how students interact with their shared notes, providing them with a robust set of tools to mark, organize, and revisit important sections effortlessly

assign this to me

Ensure Valid Email Address Existence Before User Creation

Description:
We want to implement a verification process to ensure that a valid email address exists before creating a user account. This will prevent users from inputting random or non-existent email addresses during the registration process.

Approach:

  1. When a user attempts to register, they will be prompted to enter their email address.
  2. After entering the email address, the system will generate and send a one-time verification code (OTP) to the provided email address.
  3. The user will then need to input the received OTP to verify their email address.
  4. If the OTP matches, the system will proceed with user creation. Otherwise, the registration process will be halted, and an error message will be displayed, prompting the user to enter the correct OTP or re-enter their email address.

Doubt solving page

Before exam a lots of doubts I will be creating a doubt page the users can resolve each other doubt Can you please assign me this issue under GSSOC'24

Problem with notification tab , signout button

Problem:

The Notification tab shows alot of notification which is very bad while viewing.
Also while clicking on Signout button website not signing.

Solution

I can limit the notification to 4-5 recent notifications and create a view more under it which when clicked they will able to view all notifications.
When we click signout button it should signout by clearing the local session storage cookie.

Assign me this project under gssoc24, i am ready to work.

Add issues

As the maintainer of a Collaborate repo, keeping Issues up-to-date will help the student community understand what they can do to contribute. Issues should vary by the easy (update documentation) to the difficult (add a new feature). The more involved you are, the more opportunities there are to collaborate.

Recommendations:

Add issues of varying difficulty to the repo often. you must add the tag GSSoC'24, Level 1, Level2, Level 3 good first issue etc.
How we cacluclate the Scores on Leaderboard: Every PR one point
Level 1: 10 points
Level 2: 25 points
Level 3: 45 points
Try to add some documentation issues as well it would be easy for beginner contributor to explore opensource through your repo.
Generate issues even if you plan on solving them, so the repository appears as active.
Contribute/commit often to the repo so it does not go stale.
Reference https://github.com/Recode-Hive/Stackoverflow-Analysis/issues

Feature Proposal: Leaderboard System

Incorporate a leaderboard system into the application to foster user engagement and incentivize participation. The leaderboard will enable users to earn coins by adding notes to the platform. Users will be ranked on the leaderboard based on the number of coins they accumulate through their contributions.

Unable to see error messages during login process on ExamTime website

Description :
When attempting to log in to the ExamTime website, users are not shown any error messages if they encounter issues during the login process. This lack of feedback makes it difficult for users to understand why their login attempt failed, leading to frustration and potential abandonment of the platform.

Steps to Reproduce:

  1. Navigate to the ExamTime website login page.
  2. Enter invalid credentials (e.g., incorrect username or password).
  3. Submit the login form.

Expected Behavior:
After submitting the login form with invalid credentials, users should be presented with an error message indicating the reason for the login failure (e.g., "Incorrect username or password").

Looks like something..

image

Actual Behavior:
Instead of seeing an error message, the screen remains unchanged, providing no indication that the login attempt was unsuccessful.

image

Proposed Solution:
Investigate the frontend code responsible for handling login errors and ensure that appropriate error messages are displayed to users when login attempts fail. This may involve updating error handling logic and ensuring that error messages are properly rendered on the login screen.

Previous Year Paper Page

Creating a Page for all colleges previous year papers of different subjects

Please assign this to me under GSSoc

Bug: Application Showing White Blank Screen After Sign-Up

Description:
After signing up for the application, users are encountering a frustrating issue where they are presented with a white blank screen instead of being redirected to the expected destination. Additionally, upon refreshing the page, users are reverted back to the login page, despite successfully providing credentials during the sign-up process.

Steps to Reproduce:

  1. Sign up for the application using valid credentials.
  2. After successful sign-up, observe that the application displays a white blank screen.
  3. Attempt to navigate to different pages or perform any actions, but notice no response or redirection.
  4. Refresh the page.
  5. Observe that the user is redirected back to the login page instead of the expected destination.
  6. Log in using the previously provided credentials.

Expected Behavior:
After signing up, users should be seamlessly redirected to the application's dashboard or home page.

Dynamic searching without page reloading

I have an idea in search section that instead for reloading the whole page we can search the notes in the frontend part only without reloading the page like dynamically fetching the notes in frontend only.

Just need to add couple of lines in th react hook.

I am interested in it because i had done this previously also.

so, I request you to assign it to me :)

Search courses issue

It would be better if on typing any letter on the search box, the notes should render on it automatically instead of first pressing Go and then it will refresh and then it will appear. I would like to work on this issue.

Add Topics

In GSSoC'24, GitHub Topics will help the discoverability of your project.

I see that you already have great topics on your repository!
I would recommend adding the name of the company like the software you use to build like "vs-code, ghdesktop" to improve your discoverability.

If you are happy with the topics you have, feel free to close this issue. 👍

Rearrange Notification Listing Order to Display Newly Arrived Notifications First and View All Notification Page

Currently, the notifications on GitHub are listed in a manner where the newest notifications are displayed at the bottom of the list. This arrangement can be difficult for users who want to quickly address or prioritize their latest notifications. To enhance user experience and streamline notification management, we propose rearranging the notification listing order so that newly arrived notifications are displayed at the top of the list.

I have attached the demo video of the issue.

Please assign this issue to me under GSSoC 24.

Screen.Recording.2024-05-10.at.8.38.00.PM.mov

[FEATURE] Add Delete Functionality

If some uploads a notes and in future if he/she wants to delete it so I can add a feature of delete for each notes . On clicking that button user can delete its uploaded notes.

Please @hereisSwapnil assign this issue me under GSSoC'24 . I will happy to contribute .

Learn.md

Learn repos should have a LEARN.md file to teach student how to build your project step by step. You can explain how to build your project with text, code snippets, images, or even short (5 minute) long video lessons. As the maintainer of a Learn repo, the LEARN.md file requires you to think critically about how to explain the building of your project and how to also make it engaging. We don't expect you to be an expert teacher, but we would like you to reflect on how difficult it was to get to your level of knowledge, and then provide friendly guidance to help other students to learn.

Reference: https://github.com/Recode-Hive/Stackoverflow-Analysis/blob/main/Learn.md

User not redirected to sign-in page after successful registration

Description:
After a user successfully completes the registration process by providing the required information and submitting the form, the website does not automatically redirect the user to the sign-in page. Instead, the user is left on a blank white page with no further instructions or feedback.

Expected Behavior:
Upon successful registration, the user should be automatically redirected to the sign-in page, where they can enter their newly created credentials and access the website's features.

Make a your Profile Page

I want you to make a profilee page and connect it woth backend, also match the theme of the page

The page should have relevant features to be able to edit profile

Feature:add email verification

As a security measure and to ensure the authenticity of user accounts, we need to implement an email verification system for our application. This feature will require users to verify their email addresses during the registration process or when changing their email address.

Requirements:

  1. Registration Flow:
    • When a new user signs up, the application should send a verification email to the provided email address.
    • The verification email should contain a unique verification link or code.
    • The user should be prompted to verify their email address by clicking the verification link or entering the code.
    • Until the email is verified, the user's account should remain in a "pending" or "unverified" state with limited access or functionality.
    • After successful verification, the user's account should be marked as "verified," and they should gain full access to the application.

assign this to me

Add timmer

add Pomodoro Timmer and world clock with some sound feature so that student can get everything at one place
Interactive Quizzes a quiz creation tool where users can create interactive quizzes based on their study materials. This gamified approach can help reinforce learning and test comprehension.
Discussion Forums discussion forums or chat rooms where users can ask questions, share study tips, and engage in academic discussions related to various subjects.
Please assign this to me under gssoc24

Feature Request: Day and Night Mode Integration

Proposing the integration of day and night modes into the ExamTime notes sharing website. This feature offers users the flexibility to switch between light and dark themes based on their preference, enhancing readability and reducing eye strain. Excited to implement this enhancement for improved user experience. Kindly assign me to this task.

USER ENHANCEMENT MY REQUESTS

Adding a My requests section where user can see previously made requests made by him/her

Kindly assign this under gssoc24

Add templates for issues

Issue templates are very helpful for a collaboration repo. When users identify a bug or want to add a new feature, you can provide templates so you can collect all the pertinent information you need to fix a bug or add a new feature.

We recommend creating a “Report Bug” and “Feature Request” issue template.
you can refer this: https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository

Some suggested prompts/questions you can add to a “Report Bug” template are:

Briefly describe the bug
What is the expected behavior?
Please provide step by step instructions on how to reproduce the bug
Some suggested prompts/questions you can add to a “Feature Request” issue template are:

Briefly describe your feature request
What problem is this feature trying to solve?
How do we know when the feature is complete?

Reference: https://github.com/Recode-Hive/Stackoverflow-Analysis/issues/new/choose
Click on Get Started button and copy the template to your

File Uploads Trigger Automatically Without Submission

Issue: File Uploads Trigger Automatically Without Submission

Description:
Currently, in the note sharing web application, files are uploaded to Firebase automatically whenever a user selects a file for upload, without requiring explicit submission. To improve user control and prevent accidental uploads, the file upload process should occur only after the user clicks the submit function.

Steps to Reproduce:

  1. Open the web application.
  2. Navigate to the file upload section.
  3. Select a file for upload.
  4. Observe in the network tab that the file upload process initiates immediately upon file selection, before any explicit submission.

Expected Behavior:

  • Users should be required to confirm or submit their file upload explicitly before the upload process begins.
  • File uploads should only occur upon user confirmation or submission to ensure intentional actions and prevent accidental uploads.

Proposed Solution:
Modify the file upload functionality to execute only when the user clicks the submit button. This ensures that users have control over when their files are uploaded to Firebase and prevents accidental uploads. Additionally, consider updating the user interface to provide clear instructions and visual cues, guiding users through the upload process and informing them about the required actions to complete the upload.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.