Skip to content

Latest commit

 

History

History
124 lines (92 loc) · 4.49 KB

README.md

File metadata and controls

124 lines (92 loc) · 4.49 KB

Task Board App


Task Board App
Task Board App

A straightforward task board app built with React and NodeJs.

Key FeaturesHow To UseCredits

Preview

TaskBoard.mp4

React TypeScript React Query React Hook Form Zod TailwindCSS
Node.js Javascript Express PostgreSQL Sequelize

Key Features

This application it's not only an application to manage tasks, where you can create, modify and delete them, but it also adds complete authentication based on user sessions.
Authentication allows the user to register, log in, reset password, generate new password and verify email address.
The flow is based on the fact that when the user registers correctly, two authentication tokens are created (access and refresh) which are sent to the client's cookies. Both with different durations and functionalities. The access token only lasts 15 minutes from the login and the refresh token lasts 30 days. After 15 minutes of expiration of the access token, the user will not need to log in again as long as the refresh token is valid, which after being verified by the back-end will generate both tokens again.
The user can also see and delete the sessions in which they logged in, showing on the screen which device they were made from and the corresponding timestamps.

How To Use

To clone and run this application, you'll need Git and Node.js (which comes with npm) installed on your computer. From your command line:

# Clone this repository
$ git clone https://github.com/gonferreyra/pern-task-board.git

# Go into the repository
$ cd pern-task-board

# Install dependencies
$ npm install

# Run the app
$ npm start - Back-end
$ npm run dev - Front-end

Note Keep in mind that you have to install the dependencies of both the client and server folders.

# client env (check example.env file)
VITE_API_URL=

# server env (check example.env file)
# ENVIROMENT
NODE_ENV=development

#SERVER
SERVER_PORT=
SERVER_HOSTNAME=

# FRONTEND URL
APP_ORIGIN=

#DB
DB_NAME=
DB_HOST=
DB_PORT=
DB_USER=
DB_PASSWORD=

#JWT
JWT_SECRET=
JWT_REFRESH_SECRET=

#RESEND
RESEND_API_KEY=
EMAIL_SENDER=

Credits

This software uses the following open source packages:

FrontEnd:

BackEnd:

Author