Giter Site home page Giter Site logo

hamed-hasan / building-empower-product-solution-frontend Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 451 KB

Upload File & Highlight Information ๐Ÿ“‚๐Ÿ–๏ธ. Empower users to upload images/PDFs, highlight details like invoice numbers, and ensure seamless file handling. ๐ŸŒโœจ Check out the codebase for a smooth, user-friendly experience!

Home Page: https://empowering-energy.netlify.app

JavaScript 88.98% Dockerfile 0.15% HTML 0.50% CSS 10.38%
codequality fileupload javascriptdevelopment mernstack responsivedesign techinnovation userexperience webdevelopment fullstackcoding pdfannotation

building-empower-product-solution-frontend's Introduction

Empowering Energy Product Solution

Overview

Proven track record in MERN stack development. Adept at building advanced features, as showcased by the implementation of a seamless file upload system. Skilled in integrating JavaScript libraries like FileReader API for efficient file handling and PDF.js for PDF viewing and annotation. Excels in UI/UX design, ensuring responsive and visually appealing interfaces. Proficient in user and item management with search, pagination, and CRUD operations, complemented by a custom JWT-based authentication system. Committed to code quality, readability, and modularity, with meticulous attention to detail. Eager to contribute technical excellence to impactful projects.

View the live site frontend here.

View the live site backend here.

Empowering Energy Product Solution Management System ๐Ÿš€

Empowering Energy Solution

Entity-Relationship Diagram (ERD)


+-------------------+     +-----------------+
|       Item        |     |       User      |
+-------------------+     +-----------------+
| _id: ObjectId     |     | _id: ObjectId   |
| name: String      |     | name: String    |
| created_at: Date  |     | email: String   |
| created_by: String|     | password: String|
+-------------------+     | created_at: Date|
                          | created_by: String|
                          +-----------------+

API Endpoints

Main Route

Authentication Routes ๐Ÿ›ก๏ธ

  • POST /auth/signup: Register a new user. ๐Ÿ“
  • POST /auth/login: Log in a user. ๐Ÿ”

Item Routes ๐Ÿ“ฆ

  • GET /items: Get all items. ๐Ÿ“‹
  • GET /items/:itemId: Get a specific item by ID. ๐Ÿ“–
  • POST /items/create-item: Create a new item. โœจ
  • PUT /items/:itemId: Update an item by ID. ๐Ÿ”„
  • DELETE /items/:itemId: Delete an item by ID. ๐Ÿ—‘๏ธ

User Routes ๐Ÿ‘ค

  • GET /users: Get all users. ๐Ÿง‘โ€๐Ÿ’ผ
  • GET /users/:userId: Get a specific user by ID. ๐Ÿง‘โ€๐Ÿ’ป
  • POST /users/create-user: Create a new user. โž•
  • PUT /users/:userId: Update a user by ID. ๐Ÿ”„
  • DELETE /users/:userId: Delete a user by ID. ๐Ÿ—‘๏ธ

API ENDPOINTS & DATA

Certainly! Here are the API endpoints and JSON data for the provided code with emojis:

Authentication Routes

POST /signup: Register a new user. ๐Ÿ“

  • Endpoint: /auth/signup
  • JSON Data:
    {
      "username": "example",
      "email": "[email protected]",
      "password": "your_password"
    }

POST /login: Log in a user. ๐Ÿ”

  • Endpoint: /auth/login
  • JSON Data:
    {
      "email": "[email protected]",
      "password": "your_password"
    }

Item Routes

GET /items: Get all items. ๐Ÿ“‹

  • Endpoint: /items

GET /items/:itemId: Get a specific item by ID. ๐Ÿ“–

  • Endpoint: /items/:itemId

POST /items/create-item: Create a new item. ๐Ÿ“ฆ

  • Endpoint: /items/create-item
  • JSON Data:
    {
      "name": "New Item",
      "created_by": "user_id"
    }

PUT /items/:itemId: Update an item by ID. ๐Ÿ”„

  • Endpoint: /items/:itemId
  • JSON Data:
    {
      "name": "Updated Item",
      "created_by": "user_id"
    }

DELETE /items/:itemId: Delete an item by ID. ๐Ÿ—‘๏ธ

  • Endpoint: /items/:itemId

User Routes

GET /users: Get all users. ๐Ÿ“Š

  • Endpoint: /users

GET /users/:userId: Get a specific user by ID. ๐Ÿง‘โ€๐Ÿ’ป

  • Endpoint: /users/:userId

POST /users/create-user: Create a new user. ๐Ÿง‘โ€๐Ÿš€

  • Endpoint: /users/create-user
  • JSON Data:
    {
      "name": "New User",
      "email": "[email protected]",
      "password": "user_password",
      "created_by": "admin_id"
    }

PUT /users/:userId: Update a user by ID. ๐Ÿ”„

  • Endpoint: /users/:userId
  • JSON Data:
    {
      "name": "Updated User",
      "email": "[email protected]",
      "password": "updated_password",
      "created_by": "admin_id"
    }

DELETE /users/:userId: Delete a user by ID. ๐Ÿ—‘๏ธ

  • Endpoint: /users/:userId

Model Definitions

User Model: ๐Ÿ‘ค

{
  "name": "String",
  "email": "String",
  "password": "String",
  "created_at": "Date",
  "created_by": "String"
}

Item Model: ๐Ÿ“ฆ

{
  "name": "String",
  "created_at": "Date",
  "created_by": "String"
}

Backend Features and Technologies ๐Ÿš€

Features:

  • Custom Authentication with JWT ๐Ÿ”
  • Role-Based Access Control (RBAC) ๐Ÿ›ก๏ธ
  • Item Management API ๐Ÿ“ฆ
  • User Management API ๐Ÿ‘ค
  • Authentication Routes ๐Ÿ›ก๏ธ

Technologies:

  • Node.js ๐Ÿ’ป
  • Express.js โšก
  • MongoDB with Mongoose ๐Ÿ˜
  • Bcrypt for password hashing ๐Ÿ”‘
  • Body-parser for parsing incoming request bodies ๐Ÿ“
  • CORS for enabling cross-origin resource sharing โš™๏ธ
  • Dotenv for environment variable management ๐ŸŒ
  • Nodemon for development server auto-reloading ๐Ÿ”„
  • Zod for TypeScript-first schema declaration and validation ๐Ÿ—๏ธ

Frontend Features and Technologies ๐ŸŒ

Features

  • Upload Functionality:

    • Create a button for initiating the file upload process.
    • Develop a form allowing users to select/upload an image or PDF from their device or take a photo.
  • File Type Handling:

    • Verify the selected file's type (image, PDF, etc.).
    • Display the selected file in a viewer within the browser.
  • Highlighting Feature:

    • Implement a tool enabling users to highlight specific areas (like invoice numbers) within the displayed image or PDF.
    • Enable updating the file with highlighted information.

Technologies

  • Frontend:
    • React for building user interfaces โš›๏ธ
    • Vite for frontend tooling and development ๐Ÿ› ๏ธ
    • Chakra UI for building accessible and themeable UI components ๐Ÿ‘ฉโ€๐ŸŽจ
    • Emotion for styling components with JavaScript ๐Ÿ’…
    • Axios for making HTTP requests ๐ŸŒ
    • Framer Motion for creating smooth animations ๐Ÿ”„
    • React Query for data fetching and state management ๐Ÿ“Š
    • React Router for navigation ๐Ÿšฆ
    • React Icons for including popular icon sets ๐ŸŽจ
    • Yup for form validation ๐Ÿ“
    • SweetAlert2 for displaying beautiful alerts ๐Ÿฌ
    • Tailwind CSS for utility-first styling ๐ŸŽจ

Additional Information

  • Use relevant JavaScript libraries for file handling, such as FileReader API for uploading and displaying files.
  • For PDF viewing and annotation, consider using libraries like PDF.js or other suitable options.
  • For image highlighting, utilize canvas or image editing libraries.
  • Ensure compatibility across browsers/devices and responsive design principles.
  • Bonus points for clean UI/UX and performance optimization.

Installation Frontend - Backend

To make the installation process for both the frontend and backend repositories attractive, you can follow these steps:

Backend Installation

  1. Clone the Repository:

    git clone https://github.com/Hamed-Hasan/Building-empower-product-solution-backend.git
    cd empower-product-solution-backend
  2. Install Dependencies:

    npm install
  3. Set Environment Variables: Create a .env file in the root directory and add the necessary environment variables like MONGODB_URI, JWT_SECRET, etc.

  4. Run the Application:

    npm start

    This will start the backend server.

  5. Verify Backend Installation: Open your browser and go to http://localhost:5000 to verify that the backend server is running.

Frontend Installation

  1. Clone the Repository:

    git clone https://github.com/Hamed-Hasan/Building-empower-product-solution-frontend.git
    cd empower-product-solution-frontend
  2. Install Dependencies:

    npm install
  3. Set Backend API URL: In the .env file or in your configuration, set the REACT_APP_API_URL to the backend API URL (e.g., http://localhost:5000).

  4. Run the Application:

    npm run dev

    This will start the frontend development server.

  5. Verify Frontend Installation: Open your browser and go to http://localhost:5471 to verify that the frontend application is running.

Now, you have both the backend and frontend up and running. You can explore the Empowering Energy Product Solution Management System by navigating through the provided routes and endpoints.

Feel free to reach out if you encounter any issues during the installation process or if you have any questions about the codebase!

building-empower-product-solution-frontend's People

Contributors

hamed-hasan avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.