Coder Social home page Coder Social logo

asmakacem1 / taskmanagementapinodejs Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 9.51 MB

A RESTful API for managing tasks build with NodeJS. Users should be able to perform CRUD (Create, Read, Update, Delete) operations on tasks. Each task should have an id, title, description, status (e.g., incomplete, complete), and a due date.

CSS 4.18% JavaScript 94.26% EJS 1.56%

taskmanagementapinodejs's Introduction

Task Management Web Application

This web application provides a user-friendly platform for task management, enabling users to register, log in, and manage their tasks securely. Built using the MVC architecture, the application incorporates authentication, task creation, updating, and deletion functionalities.

homepage

Video:

Screen.Recording.-.Made.with.FlexClip.1.webm

Technologies Used

  • Node.js: Used as the backend runtime environment.
  • Express.js: Framework for building the web application.
  • MongoDB: Database for storing user and task information.
  • Bcrypt: Utilized for secure password hashing.
  • Express Sessions: Managed user sessions for a secure and seamless experience.
  • Bootstrap: Employed for front-end design and responsiveness.

Project Structure

The project follows the MVC (Model-View-Controller) architecture:

  • Models: Define the structure and methods for interacting with the database.
  • Views: Handle the presentation and user interface using EJS templates.
  • Controllers: Manage the logic and communication between models and views.
  • Routes: Define the application's endpoints and connect them to controllers.

mvc

Authentication

Implemented user authentication ensures secure user registration, login, and logout processes. Passwords are hashed using bcrypt for enhanced security. The system verifies email existence during registration and uses bcrypt to compare passwords during login.

Task Management

Users can create, update, and delete tasks through an intuitive interface. The application enforces data validation, preventing the addition of tasks with missing information. Users can also view and edit their task lists seamlessly.

edittask

Form Validation

To enhance user experience and data integrity, the application implements form validation. Users are required to fill in all necessary information, and the system prevents the addition of tasks with missing details.

addtask

Email Validation

During user registration, a valid email address is required. This ensures that users provide a legitimate email for account creation.

email

Getting Started

Follow these steps to run the project locally:

run

  • Run the application: nodemon

nodemon

Authentication and Authorization

The implemented authentication system for the Task Management solution allows users to securely register, log in, and log out. The registration process checks for existing emails and employs bcrypt for password hashing. User logins involve email and password verification using bcrypt, with session token creation and storage for secure sessions. Logging out clears the user session, and Express sessions manage user sessions securely. An optional Express middleware, guardAuth, validates session tokens for authentication checks. The user interface is seamlessly integrated with authentication methods, ensuring a smooth user experience with redirection based on authentication status.

Feedback

Feedback on the project is highly appreciated. Feel free to open issues or contribute to further enhance the functionality and user experience.

taskmanagementapinodejs's People

Contributors

asmakacem1 avatar

Watchers

 avatar

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.