swaraj-das / Collect-your-GamingTools

E-Commerce Website for Gaming Tools
https://collect-your-gamingtools.netlify.app/
MIT License
50 stars 224 forks source link

Implement Authentication Using MongoDB, Node.js, and Express" Issue Description: #18

Open Abhishek-TG18 opened 1 month ago

Abhishek-TG18 commented 1 month ago

Hey Team,

The current website lacks an authentication system, which is essential for user login and registration functionality. I propose implementing an authentication mechanism using MongoDB, Node.js, and Express to ensure a secure and efficient user management system. Key features that can be included:

User Registration: Allow new users to create accounts by securely storing credentials in MongoDB.

User Login: Authenticate users and provide secure session management using JWT (JSON Web Tokens).

Password Hashing: Utilize bcrypt to securely hash passwords before storing them in the database.

Route Protection: Ensure certain routes are protected and only accessible to authenticated users.

Error Handling: Provide appropriate feedback for failed login attempts, invalid inputs, and unauthorized access.

I would like to work on this and submit a pull request. Please assign this issue to me and tag it with GSSoC-EXT and Hacktoberfest. Let me know if you have any specific preferences or guidelines for this implementation.

Abhishek-TG18 commented 1 month ago

@swaraj-das Thank you for assigning the issue to me and adding the GSSoC-EXTD label! Could you kindly also add the Hacktoberfest tag to this issue? I appreciate the opportunity to contribute and look forward to working on this.

Abhishek-TG18 commented 1 month ago

Hi @swaraj-das ,

I’ve successfully implemented the authentication using MongoDB, Node.js, and Express, and tested it using Postman API. It took some time, but everything is now functioning correctly.

I plan to raise a new issue for connecting the authentication with the frontend separately to keep tasks organized.

Could you please confirm if I can proceed with submitting a pull request for the completed backend authentication?

Thank you for your time and support!

Abhishek-TG18 commented 1 month ago

@swaraj-das Please let me know if you'd like a video of the Postman API testing. I'd be happy to share it.

swaraj-das commented 1 month ago

Hi @swaraj-das ,

I’ve successfully implemented the authentication using MongoDB, Node.js, and Express, and tested it using Postman API. It took some time, but everything is now functioning correctly.

I plan to raise a new issue for connecting the authentication with the frontend separately to keep tasks organized.

Could you please confirm if I can proceed with submitting a pull request for the completed backend authentication?

Thank you for your time and support!

Please go ahead and submit the pull request for the backend authentication. Once that's merged, raising a new issue for connecting it to the frontend sounds like a good plan to keep things organized.

swaraj-das commented 1 month ago

@swaraj-das Please let me know if you'd like a video of the Postman API testing. I'd be happy to share it.

You can share the video with me, but I don't have much experience with backend development. I recommend having the mentors review both the code and the video once they are available, as they are not active at the moment.

Abhishek-TG18 commented 1 month ago

Hi,

I've implemented the following features:

Signup: Users can register with their email and password. Sign-in: Registered users can log in to the system. User Details: Users can retrieve their details once logged in. Signout: Users can securely log out of the system.

https://github.com/user-attachments/assets/d84dd42d-6908-4dde-88bf-02d2c87166b0

https://github.com/user-attachments/assets/c19bd653-e822-4867-a0b0-31c1f00a9cbf

https://github.com/user-attachments/assets/0eacf3c4-983d-4a03-8ea6-f9b4f91d8b43

https://github.com/user-attachments/assets/7f388a0a-dee7-4554-8a3a-b6b89a4139e1

Abhishek-TG18 commented 1 month ago

Hi @swaraj-das,

Apologies for the confusion earlier. The server is running, and I’ve recorded videos to demonstrate the functionality. However, I realized I sent them in the wrong order. Here's the correct sequence:

Video 1: Sending a sign-up request to the server. Video 4: Signing in using a valid email and password. Video 2: Fetching user information from the database. Video 3: Logging out the signed-in user. I hope this clears things up. Let me know if you need anything else!

I’ve just sent a pull request with the implemented features. Please take a look and accept it when you get the chance.

Let me know if you need any further details. Thanks!

swaraj-das commented 1 month ago

@Abhishek-TG18 Your PR will be reviewed by our team. However, it may take a few days for the review process to be completed, as the mentors are currently unavailable.