Skip to content

This Node.js REST API, developed through my 2nd to 6th homework assignments, is a hands-on showcase of my learning journey. Explore diverse features, RESTful endpoints of this project.

Notifications You must be signed in to change notification settings

kuciapakrystian/rest-api-goit-NodeJS

 
 

Repository files navigation

Email Verification with Nodemailer

GitHub last commit Node.js Version Express.js Version MongoDB Mongoose Version JWT Nodemailer

The sixth homework assignment marks a pivotal advancement in our ongoing project, seamlessly building upon the foundations established in prior modules. In this iteration, we introduce a critically important feature—email verification—leveraging the robust capabilities of the Nodemailer API. This module is meticulously crafted with a singular focus: to fortify user security and elevate the precision of access control mechanisms within our application.

Homework6: Email Verification with Nodemailer

The sixth homework assignment builds upon prior projects, introduces a crucial feature—email verification using the Nodemailer API. This module is dedicated to fortifying user security and refining access control within our application.

API Endpoints

Contact endpoints

  • (GET) /api/contacts: Retrieve a list of all contacts.
  • (GET) /api/contacts/:contactId: Retrieve a specific contact by ID.
  • (POST) /api/contacts: Add a new contact to the list.
  • (PUT) /api/contacts/:contactId: Update an existing contact's information.
  • (PATCH) /api/contacts/:contactId/favorite: Partially update an existing contact's information.
  • (DELETE) /api/contacts/:contactId: Delete an existing contact from the list.

User endpoints

  • (POST) /api/users/signup: Register a new user.
  • (POST) /api/users/signin: Login and obtain a JWT.
  • (POST) /api/users/logout: Logout the user.
  • (GET) /api/users/current: Retrieve information about the currently logged-in user.
  • (PATCH) /api/users/avatars: Change the user's avatar.
  • (GET) /api/users/verify/:verificationToken: Verify the user's email address using the provided token.
  • (POST) /api/users/verify: Request a second verification email.

Additional Endpoints

  • (GET) /api/contacts?page=<page_number>&limit=<page_size>: Retrieve paginated contacts.
  • (GET) /api/contacts?favorite=true: Retrieve contacts marked as favorites.
  • (PATCH) /api/users: Update the user's subscription level.

Technologies Used

  • Node.js: The runtime environment for executing the application.
  • MongoDB: A NoSQL database for data persistence.
  • Mongoose: An ODM (Object Data Modeling) library for MongoDB and Node.js.
  • JSON Web Token: Used for user authentication.
  • Express.js: A web application framework for building RESTful APIs.
  • JSON: Data interchange format used in the project.
  • Nodemailer: Email sending module for Node.js.

Issues

If you encounter any issues or have suggestions, please open an issue.

Feedback

I welcome feedback and suggestions from users to improve the application's functionality and user experience.

Languages and Tools:

About

This Node.js REST API, developed through my 2nd to 6th homework assignments, is a hands-on showcase of my learning journey. Explore diverse features, RESTful endpoints of this project.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%