GitHunt
HA

Hamed-Hasan/Building-arraytics-product-solution-backend

Arraytics Product Solution Backend ๐Ÿš€ Powering Arraytics product solutions with Node.js, Express.js, MongoDB, and more! Seamlessly manage items and users with robust APIs. ๐Ÿ”๐Ÿ“ฆ๐Ÿ‘ค Explore API docs on Postman. View live sites for frontend and backend. Join us in building the future of Arraytics! #FullStack #Backend

Arraytics Product Solution Backend

Overview

Welcome to the Arraytics Product Solution Backend! This project serves as the backbone for handling various functionalities related to Arraytics product solutions. It is built using technologies like Node.js, Express.js, MongoDB with Mongoose, and other essential libraries.

View the live site frontend here.

View the live site backend here.

View the API documentation on Postman here.

Arraytics Product Solution Management System ๐Ÿš€

Arraytics 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|
                          +-----------------+

Arraytics 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": "example@example.com",
      "password": "your_password"
    }

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

  • Endpoint: /auth/login
  • JSON Data:
    {
      "email": "example@example.com",
      "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": "newuser@example.com",
      "password": "user_password",
      "created_by": "admin_id"
    }

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

  • Endpoint: /users/:userId
  • JSON Data:
    {
      "name": "Updated User",
      "email": "updateduser@example.com",
      "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:

  • User Interface for Arraytics Product Solution Management System ๐Ÿš€
  • Authentication UI ๐Ÿ›ก๏ธ
  • Item Management UI ๐Ÿ“ฆ
  • User Management UI ๐Ÿ‘ค

Technologies:

  • 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 ๐ŸŽจ

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-arraytics-product-solution-backend
    cd arraytics-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-arraytics-product-solution-frontend
    cd arraytics-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 Arraytics 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!

Hamed-Hasan/Building-arraytics-product-solution-backend | GitHunt