Table of Contents
Authenticate Me is a lightweight full-stack application designed as my stepping stone into the world of full-stack development. The project incorporates foundational elements commonly found in web applications: account creation, login, logout, along with a tried-and-true user authentication and authorization pattern.
- Grasp Core Functionality: As my first full-stack project, the goal was to understand and implement core web functionalities such as account creation, log in, log out, and user authentication.
- Dive into Databases: Delve deep into PostgreSQL, understanding its strengths and intricacies to manage user data securely.
- Data flow and state management: Adopt and master the Redux Toolkit to manage the application's state efficiently and streamline data flow across components.
- Decipher Authentication: Build an application that's not only functional, but also resilient against common cyber threats.
- Holistic Development: Cement a foundational understanding of how front-end and back-end technologies intertwine and communicate, laying the groundwork for more complex projects in the future.
- Deployment: Experience the nuances and challenges of deploying a full-stack application, transitioning from a local development environment to a live platform accessible by users.
To view the live version of Authenticate Me, click here. Follow the on-screen instructions to register or log in.
Follow these steps to run Authenticate Me on your local machine for development and testing.
-
Prerequisites
- Node.js & NPM
- PostgreSQL
-
Installing
- Clone the repository to your local machine.
- Navigate to the project directory.
- Create a
.env
file inbackend
and define the variables below for your PostgreSQL database, your desired JWT parameters, and bcrypt salt to be used for hashing:PORT=5000 DB_USERNAME= DB_PASSWORD= DB_DATABASE= DB_HOST=localhost JWT_SECRET= JWT_EXPIRES_IN= BCRYPT_SALT=
- Run
npm install
insidefrontend
to install all required front-end dependencies. - Run
npm start
insidefrontend
to start the front-end. - Run
npm install
insidebackend
to install all required back-end dependencies. - Run
npm start
insidebackend
to start the back-end. - Run
dotenv npx sequelize db:migrate
insidebackend
to run Sequelize migrations. - Run
dotenv npx sequelize db:migrate
insidebackend
if you would like to seed the database with mock data.