This project is an inventory management system built using Next.js, Node.js, and TypeScript. It provides a dashboard to manage inventory with features such as product management, order tracking, and reporting. The system is deployed using AWS services including EC2, RDS, and S3.
-
Frontend (Client):
- Built with Next.js 14 for server-side rendering and static site generation.
- Tailwind CSS for modern, utility-first styling.
- Responsive design for various screen sizes.
-
Backend (Server):
- Built with Node.js and Express.
- PostgreSQL for relational database management.
- TypeScript for type safety and improved development experience.
-
Deployment:
- AWS EC2 for hosting the application.
- AWS RDS for managed PostgreSQL database.
- AWS S3 for file storage.
- Node.js (>= 14.x)
- PostgreSQL
- AWS account (for EC2, RDS, S3)
git clone git@github.com:chaad98/IMS.git
cd IMS-
Navigate to the server directory:
cd server -
Install dependencies:
npm install
-
Set up environment variables. Create a
.envfile in theserverdirectory and add the following configuration:DATABASE_URL=your_postgres_database_url AWS_ACCESS_KEY_ID=your_aws_access_key AWS_SECRET_ACCESS_KEY=your_aws_secret_key AWS_BUCKET_NAME=your_s3_bucket_name
-
Build the project:
npm run build
-
Start the server:
npm start
-
Navigate to the client directory:
cd ../client -
Install dependencies:
npm install
-
Build the project:
npm run build
-
Start the development server:
npm run dev
- Launch an EC2 instance and configure it for your application.
- Ensure the security groups allow HTTP and HTTPS traffic.
- Deploy your application to the EC2 instance. Use deployment tools like PM2 or Docker if needed.
- Set up an RDS PostgreSQL instance.
- Update the
DATABASE_URLin your.envfile with the RDS endpoint.
- Create an S3 bucket for file storage.
- Update your application's configuration to use the S3 bucket for storing and retrieving files.
- Access the dashboard at
http://your-ec2-public-ip. - Use the web interface to manage inventory, view reports, and handle administrative tasks.
Contributions are welcome! Please follow these guidelines:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Commit your changes and push them to your forked repository.
- Create a pull request describing your changes.
This project is licensed under the MIT License - see the LICENSE file for details.
For any questions or support, please contact Chad.