Skip to content

Conversation

@AvaneeshKesavan
Copy link
Contributor

Fixes : #58
This PR implements the "Forgot Password" functionality:

  • Backend:

    • Updated main.py, db.py, models.py, user_models.py, auth.py
    • Added email reset token handling and password update endpoints
  • Frontend:

    • Added .env for API URL
    • Added forgot-password.tsx and [token].tsx pages for password reset
    • Integrated API calls to backend for password reset

Tested locally and working with theme toggle and navigation.

@vercel
Copy link

vercel bot commented Sep 16, 2025

@AvaneeshKesavan is attempting to deploy a commit to the mihir2006's projects Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions
Copy link

Thanks for creating this PR

We'll review it as soon as possible.
In the meantime, please double-check the file changes and ensure that all commits are accurate.

If there are any unresolved review comments, feel free to resolve them.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary of Changes

Hello @AvaneeshKesavan, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a comprehensive 'Forgot Password' feature, addressing issue #58. It provides a complete solution from backend API endpoints for token generation and password updates to a user-friendly frontend interface for requesting and completing password resets. The changes ensure that users can securely regain access to their accounts by receiving a unique reset link via email and setting a new password.

Highlights

  • Forgot Password Backend API: New FastAPI endpoints have been added for initiating a password reset request (generating a token and sending an email) and for handling the actual password reset using a provided token.
  • Database Schema Update: The UserDB model now includes fields for reset_token and reset_token_expiry to securely manage password reset requests, along with a new user_models.py file to define this model.
  • Frontend User Interface: Dedicated frontend pages (forgot-password.tsx and [token].tsx) have been implemented to allow users to request a password reset and subsequently set a new password using the received token.
  • Email Integration: The backend now integrates with smtplib to send password reset links to users' email addresses, utilizing environment variables for email configuration.
  • Frontend API Configuration: A new .env file has been added to the frontend to configure the NEXT_PUBLIC_API_URL, ensuring proper communication with the backend API.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a "Forgot Password" feature, integrating both backend and frontend components. The backend logic in FastAPI correctly handles secure token generation and password hashing. The frontend adds the necessary pages using Next.js and React. The implementation is generally solid, particularly the security measure of using a generic response to prevent user enumeration. However, there are several areas for improvement to make the code more robust and production-ready. Key feedback points include moving hardcoded configuration values to environment variables, enhancing error handling to avoid leaking implementation details, and improving frontend semantics for better accessibility.

AvaneeshKesavan and others added 5 commits September 16, 2025 10:50
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Copy link
Owner

@MIHIR2006 MIHIR2006 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove frontend/.env from your PR, it shouldn’t be tracked.

@AvaneeshKesavan
Copy link
Contributor Author

Done removed .env

@MIHIR2006 MIHIR2006 added good first issue Good for newcomers level: easy level : 1 Quick fix or small feature.(1–2 days) GSSOC 25 This issue is a part of GSSOC 2025 labels Sep 16, 2025
@vercel
Copy link

vercel bot commented Sep 16, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
stock-vision Ready Ready Preview Comment Sep 16, 2025 3:48pm

@MIHIR2006
Copy link
Owner

@AvaneeshKesavan There’s a production issue due to a missing dependency install react-hot-toast to resolve it.

@AvaneeshKesavan
Copy link
Contributor Author

done

@MIHIR2006 MIHIR2006 merged commit cd6ffa4 into MIHIR2006:main Sep 16, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

good first issue Good for newcomers GSSOC 25 This issue is a part of GSSOC 2025 level: easy level : 1 Quick fix or small feature.(1–2 days)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add “Forgot Password” feature to enable users to reset their password via email

2 participants