Skip to content

A Fullstack Inventory Management Dashboard built with Next.js, Redux Toolkit, and Node.js, leveraging AWS for deployment and backend infrastructure.

Notifications You must be signed in to change notification settings

freda1874/InventoryDataDashboard-Postgres-Node-Tailwind-aws

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

24 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Fullstack Inventory Management Dashboard

A fullstack Inventory Management Dashboard built with Next.js, styled with Tailwind css, featuring data visualization for inventory, products, expenses, and users personal setting. Utilizes Node.js with PostgreSQL for the backend, deployed on AWS services including EC2, RDS, and S3. Users can manage and visualize data dynamically with different charts and grid layouts.

πŸ› οΈ Tech Stack

Frontend:

  • Next.js (with TypeScript)
  • Tailwind CSS – for styling.
  • Redux Toolkit – for state management.
  • Redux Toolkit Query – for handling API calls and data fetching.
  • Material UI Data Grid – for creating dynamic grid tables.
  • Recharts – for rendering interactive charts and graphs. page1

Backend:

  • Node.js with Express – for building the REST API.
  • Prisma – for database modeling and communication with PostgreSQL. page8

AWS Services:

  • AWS EC2 – for hosting the backend.
  • AWS RDS – for managing the PostgreSQL database.
  • AWS API Gateway – for routing and managing API requests.
  • AWS Amplify – for deploying and hosting the frontend.
  • AWS S3 – for file storage (e.g., product images, assets).

AWS Deployment Steps for Full-Stack Web App

1.Set Up VPC & Networking:

vpc -> subnet -> 1 public subnet + 2 private subnet -> 2+ availability zone -> create and attach vpc internet gateway -> route table: each subnet has its own route table and associate them with subnets -> public route table Connects to 0.0.0.0/0

2.Set Up EC2 Instance

-> set up EC2 instance -> Generate a Key Pair -> allow ssh traffic and https traffic from internet to public subnet and auto assign public ip -> inbound security group rules(ssh http http) -> connect to instance -> install node, git, nvm,pm2 -> in code add "0.0.0.0" to listen to internet -> create config file in code to tell what to run when using pm -> clone code to the aws -> add port to env file -> set pm2 command to monitor restart

3.Set Up RDS (Database)

-> Create an RDS Database -> attach with 2 private subnets -> choose database and set password -> db management vpc security groups to get inbound traffic from ec2 instance -> copy endpoint to connect with ec2, add endpoint to env file -> configure db and db seed migrate

4.Deploy Frontend with AWS Amplify

-> amplify for frontend app -> connect with github repo -> add env variable copy public ip address -> configure api gateway to all the pages -> get invoke url to paste it in amply env variable

5.Configure S3 for Image Storage

-> Create a New S3 Bucket for storing images -> bucket policy add policy to allow public access -> use image links in app

🌟 Features

Frontend (Client-Side):

  1. Data Dashboard:
  • Visualizes data using Recharts (bar charts, line graphs, pie charts).
  • Provides a comprehensive view of the inventory, expenses, and user data.
    page2
  1. Inventory Page:

    • Displays a list of all inventory items.
    • Allows for filtering and searching through inventory. page3
  2. Product Page:

    • Shows detailed information about products in a grid layout using Material UI Data Grid.
    • Allows users to create new products directly from the dashboard. page9 page10
  3. User Page:

    • Displays a list of users using Material UI Grid.
    • Includes search and filter capabilities.
  4. Expense Page:

    • Provides a dynamic pie chart to display the expense summary.
    • Allows filtering by expense category for better analysis. page5
  5. Settings Page:

    • Mock page for personal settings, including dark mode, profile updates, etc.
    • Dark mode and other states are controlled using Redux. page4

7.Responsive Design:

  • middle screen size page6
  • small screen size

page7

Backend (Server-Side):

  • Node.js with Express powers the backend API.
  • Prisma is used for data modeling, communicating with the PostgreSQL database hosted on AWS RDS.
  • Backend is hosted on AWS EC2 for secure and scalable performance.

πŸš€ Deployment

The frontend is deployed using AWS Amplify, and the backend is deployed on AWS EC2. AWS API Gateway manages the API endpoints, and AWS S3 is used for storage of static assets.

🀝 Credit

I complete this project with the guide of this tutorial: https://www.youtube.com/watch?v=ddKQ8sZo_v8

About

A Fullstack Inventory Management Dashboard built with Next.js, Redux Toolkit, and Node.js, leveraging AWS for deployment and backend infrastructure.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages