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

This branch is 58 commits ahead of goitacademy/nodejs-homework-template:master.

Folders and files

NameName
Last commit message
Last commit date
Jul 18, 2024
Jun 23, 2024
Jul 18, 2024
Jul 14, 2024
Jul 18, 2024
Jul 14, 2024
Jul 18, 2024
Jul 18, 2024
Jul 14, 2024
Jul 18, 2024
Jul 18, 2024
Jul 7, 2024
Jul 14, 2024
Jul 18, 2024
Jan 19, 2022
Jul 14, 2024
Jul 14, 2024
Jul 18, 2024
May 29, 2023
Jul 7, 2024

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%