Skip to content

πŸ₯ A web app for managing medical store inventory, sales, and customer data, ensuring efficient tracking and secure data management.

License

Notifications You must be signed in to change notification settings

charangajjala/MedEase

Repository files navigation

MedEase πŸ₯🌐

Streamlining medical store operations with efficient inventory, sales, and customer management.

React SCSS/Sass Vite Redux Spring Boot Hibernate Spring Data JPA MySQL Connector/J JSON Web Tokens (JWT) AWS SDK for Java

Features πŸš€

  • Inventory Management: Add, update, and delete products from the inventory.
  • Order Management: Add, update, and delete orders.
  • Company Management: Add, update, and delete company data.
  • Product Category Management: Add, update, and delete category data.
  • Customer Management: Add, update, and delete customer data.
  • Dashboard: View sales and inventory statistics.

Tech Stack πŸ› οΈ

Frontend Technologies

  • React: JavaScript library for building interactive single-page applications.
  • SCSS/Sass: CSS preprocessor for advanced styling with features like variables and nesting.
  • Vite: Fast frontend build tool with instant hot module replacement.
  • Axios: HTTP client for API requests.
  • Chart.js & react-chartjs-2: Libraries for creating interactive charts.
  • html2canvas & jspdf: Generate PDFs from web pages for downloading reports.
  • React Hot Toast: Customizable notifications for React apps.
  • React Icons: Popular icon sets for React projects.
  • Redux & React Redux: State management libraries for efficient app state handling.
  • React Router Dom: Enables dynamic routing without page refreshes.
  • FontAwesome: Icon toolkit for adding vector icons and logos.

Backend Technologies

  • Spring Boot: Framework for rapid Spring app development with built-in configurations.
  • Spring Boot DevTools: Enhances development with fast restarts and live reloads.
  • Spring Boot Starter Test: Supports testing with libraries like JUnit and Mockito.
  • Spring Boot Starter Data JPA: Simplifies data access layers using JPA.
  • Spring Boot Starter Security: Provides authentication and authorization for Spring apps.
  • Spring Boot Starter Validation: Enables validation with Java Bean Validation APIs.
  • MySQL Connector/J: JDBC driver for MySQL database connections.
  • Lombok: Automates code generation for Java, such as getters and equals methods.
  • JWT: Securely transmits information between parties using JSON Web Tokens.
  • Spring Boot Starter Actuator: Adds production-ready monitoring and management features.
  • AWS Java SDK for S3: Interacts with Amazon S3 for file management.
  • Jakarta XML Bind API & JAXB Runtime: Converts Java objects to XML and vice versa.

Installation βš™οΈ

  1. Clone the repository
    git clone https://github.com/charangajjala/medEase_portal.git
  2. Navigate to the project directory
  3. Install the required dependencies
    npm install
  4. Start the development server
     npm run dev
  5. By default the application opens at the port 5173 but it can be altered in the vite.config.js file. If the port is changed, the backend URL in the ./backend/src/main/java/com/chapp/med_ease/config/WebConfig.java file should also be updated by changing the allowedOrigins value.
  6. After initiating the frontend side, we should also start the backend server. The backend server is a Spring Boot application and can be started by running the MedEaseApplication.java file in the ./backend/src/main/java/com/chapp/med_ease directory.
  7. By default frontend application uses the default backend URL http://localhost:8080 but it can be altered in the ./frontend/src/api/axios.jsx file.
  8. After a successful build, we need to make sure the database is up and running. The database schema is provided in the ./backend/src/main/resources directory. The database configuration can be altered in the ./backend/src/main/resources/application.properties file.

Usage πŸ§‘β€πŸ’»

The application is designed to be user-friendly and intuitive. Both the admin and user have a common login page. The admin credentials can be added to the database manually. The admin has access to all the features of the application which includes

  • Inventory Management
  • Order Management
  • Company Management
  • Product Category Management
  • Statistics of the sales and inventory

The user has access to the shopping page where they can perform operations like

  • Viewing products
  • Adding products to the cart
  • Placing orders
  • Viewing order history
  • Viewing seller and company details (Under development)
  • Searching for products
  • Viewing product categories
  • Adding and updating customer details

Other features like loading animations and notifications are also included in the application. Most of the features are self-explanatory and application is desgned to be user-friendly.

Apart from this the application is made responsive and can be accessed from any device. But it is recommended to use the application on a desktop for a better experience. The applicatioon is also designed to be secure and the user data is encrypted and stored in the database. The application is also designed to be scalable and can be easily extended to include more features.

How it works πŸ“

Database Schema

This schema is designed to include the seller feature which is under development. This is getting carried on as a part of the future work. Currently the application has the admin and user features.

Authentication

The application currently uses Role based login and JWT for authentication. The application has two types of users

  • ADMIN
  • USER
  • SELLER (Under development)

The application has a common login page for both the admin and user. The admin and user have different dashboards and features.

Login Screen

Admin

Upon login the admin is redirected to the admin dashboard where they can view the statistics of the sales and inventory. The admin can then navigate to the required location using the sidebar.

Admin Dashboard

User

Upon login the user is redirected to the shopping page where they can perform user related operations.

User Dashboard

Future Work

The current version of the application is designed to lean towards the admin and user features. The seller feature is under development and is planned to be included in the future versions. The seller feature is designed to include the following features

  • Seller Management
  • Seller Dashboard
  • Seller Inventory Management
  • Seller Order Management
  • Seller Statistics

Apart from this the application is also planned to be extended to include the following features

  • Payment Gateway Integration

Contrbutors

Charan Gajjala
Charan Gajjala Chenchu
Prem Jampuram
Prem Jampuram

License 🎟️

This project is licensed under the MIT License - see the LICENSE file for details.

Contact Information πŸ”

If you wish to contribute to the project or have any queries, please contact us at Prem, Charan.

Acknowledgements πŸ“œ

About

πŸ₯ A web app for managing medical store inventory, sales, and customer data, ensuring efficient tracking and secure data management.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published