Skip to content

ysjayit/customer-management-system-api

Repository files navigation

Customer-Management-System-API

  • This REST API is for customer management system.

Technologies

  • Laravel Framework 6.20.44
  • Laravel Passport 7.5.1

Features

  • User registration
  • User Login
  • Listing Customers
  • Create Customer
  • View Customer
  • Update Customer
  • Delete Customer

Installation

  • Clone the repository
  • Composer install composer install
  • Set environment cp .env.example .env
  • Set the application key php artisan key:generate
  • Run migration php artisan migrate
  • Run application php artisan serve

Docker Setup (Optional)

  • It requires a machine with Docker installed.
  • Update below .env parameters. DB_HOST, DB_PORT, DB_CONNECTION exactly as shown below and DB_DATABASE, DB_USERNAME, DB_PASSWORD as your choice. DB_HOST=db DB_PORT=3306 DB_DATABASE=<database_name> DB_USERNAME=<database_user_name> DB_PASSWORD=<database_user_password> DB_CONNECTION=mysql
  • Update docker-compose/mysql/init/01-databaes.sql file according to the changes made above.
  • Run container docker-compose up -d --build
  • Check the status docker-compose ps you should see three containers are running.
  • Bash in to the container to install composer dependencies and run application commands docker-compose exec app bash composer install php artisan key:generate php artisan migrate
  • Application is accessible under http://localhost:8005

REST API

User registration

Request http://127.0.0.1:8000/api/register
Method POST
Headers Accept : application/json
Parameters {
  "name" : "Demo User",
  "email" : "[email protected]",
  "password" : "12345",
  "c_password" : "12345"
}
Response {
  "success": true,
  "data": {
       "token": "xxxxxxxxxxxxxxxxxxx",
       "name": "Demo User"
    },
  "message": "User register successfully."
}
User Login

Request http://127.0.0.1:8000/api/login
Method POST
Headers Accept : application/json
Parameters {
  "email" : "[email protected]",
  "password" : "12345"
}
Response {
  "success": true,
  "data": {
       "token": "xxxxxxxxxxxxxxxxxxx",
       "name": "Demo User"
    },
  "message": "User register successfully."
}
Listing Customers

Request http://127.0.0.1:8000/api/customers
Method GET
Headers Accept : application/json
Authorization Bearer Token (Token recieved when login)
Parameters
Response {
  "success": true,
  "data": [
     {
     "id": 1,
     "first_name": "John",
     "last_name": "Peter",
     "age": 25,
     "dob": "1995-05-14",
     "email": "[email protected]",
     "created_at": "29/06/2022",
     "updated_at": "29/06/2022"
     }
   ],
  "message": "Customers retrieved successfully."
}
Create Customer

Request http://127.0.0.1:8000/api/customers
Method POST
Headers Accept : application/json
Authorization Bearer Token (Token recieved when login)
Parameters {
  "first_name" : "John",
  "last_name" : "Peter",
  "age" : "25",
  "dob" : "1995/05/14",
  "email" : "[email protected]"
}
Response {
  "success": true,
  "data": {
       "id": 1,
       "first_name": "John",
       "last_name": "Peter",
       "age": "25",
       "dob": "1995/05/14",
       "email": "[email protected]",
       "created_at": "29/06/2022",
       "updated_at": "29/06/2022"
    },
  "message": "Customer created successfully."
}
View Customer

Request http://127.0.0.1:8000/api/customers/{customer_id}
Method GET
Headers Accept : application/json
Authorization Bearer Token (Token recieved when login)
Parameters
Response {
  "success": true,
  "data": {
      "id": 1,
      "first_name": "John",
      "last_name": "Peter",
      "age": 25,
      "dob": "1995-05-14",
      "email": "[email protected]",
      "created_at": "29/06/2022",
      "updated_at": "29/06/2022"
   },
  "message": "Customer retrieved successfully."
}
Update Customer

Request http://127.0.0.1:8000/api/customers/{customer_id}
Method PUT
Headers Accept : application/json
Authorization Bearer Token (Token recieved when login)
Parameters {
  "first_name" : "John",
  "last_name" : "Peter",
  "age" : "25",
  "dob" : "1995/05/14",
  "email" : "[email protected]"
}
Response {
  "success": true,
  "data": {
      "id": 1,
      "first_name": "John",
      "last_name": "Peter",
      "age": "25",
      "dob": "1995/05/14",
      "email": "[email protected]",
      "created_at": "29/06/2022",
      "updated_at": "29/06/2022"
   },
  "message": "Customer updated successfully."
}
Delete Customer

Request http://127.0.0.1:8000/api/customers/{customer_id}
Method DELETE
Headers Accept : application/json
Authorization Bearer Token (Token recieved when login)
Parameters
Response {
  "success": true,
  "data": [],
  "message": "Customer deleted successfully."
}

Releases

No releases published

Packages

No packages published