Project Name: Serv

case study (1).png

Project Objective:

Create a web marketplace offering digital marketing, programming, and other IT skills. the main idea is we help the expert who have experience in IT skill with our platform and connect with user who need a service

Features:

  1. User accounts and login
  2. Item listing and pricing
  3. Item search by criteria
  4. Detailed item information and seller contact
  5. Admin dashboard panel for managing listings, users, and transactions

Technology Stack:

Workflow

  1. Database Design:
  2. Database Migration & Seeding:
  3. Eloquent:
  4. Blade:
  5. Testing:
  6. Deployment:
  7. Documentation:

Preparatory

Installation

  1. Clone the repository:

    git clone <https://github.com/aldiandarwin/Serv-commerce>
    
  2. Navigate to the project directory:

    cd your-social-auth-project
    
    
  3. Install PHP dependencies using Composer:

    composer install
    
  4. Install NPM dependencies:

    npm install
    
  5. Copy the .env.example file and rename it to .env. Update the database configuration and other necessary settings:

    cp .env.example .env
    
  6. Generate an application key:

    php artisan key:generate
    
  7. Migrate the database:

    php artisan migrate:fresh --see
    
  8. Start the development server:

    php artisan serve
    
    
  9. Build the frontend assets:

    npm run dev
    

Repository

  1. Source Code (Laravel)

https://github.com/aldiandarwin/serv-test

case study question

1.Programming Stack

I chose Laravel as the programming stack for this project for several reasons:

  1. Outstanding Ecosystem: Laravel boasts an extraordinary ecosystem supported by a large community and a wide array of packages and libraries. This makes application development with Laravel more straightforward and efficient.
  2. Backend Advantages: Laravel excels in the backend, offering ready-to-use features such as ORM, routing, authentication, and authorization. This streamlines the development of backend applications.
  3. Scalability: Laravel is a scalable framework, adaptable to the evolving needs of growing applications.
  4. Security: Laravel comes with built-in security features, enhancing the protection of applications against potential threats.

2.Database

I opted for MySQL as the database for this project due to the following reasons:

  1. Relevance to Requirements: MySQL, being a relational database, is suitable for storing data with complex relationships, aligning well with the project's requirements involving user data, items, categories, and transactions.
  2. Compatibility: MySQL is a popular and widely used relational database, ensuring ease of finding support and documentation.
  3. Performance: MySQL is known for its good performance, making it capable of supporting applications with a large user base.

3.ERD

ERD

ERD

folder structur

folder structur

![folder structure view

](https://prod-files-secure.s3.us-west-2.amazonaws.com/ef3ee015-9b8b-457a-9b2f-990ad0e47c98/f4444cd2-3fce-4918-bb3d-7a8ebd45df35/3._Structure_Foldering_View.png)

folder structure view

4. How many API did we need for this case? And try to create the documentation.

In this project, we are using API tokens for authentication and authorization purposes. Here's an explanation of why API tokens are employed:

Detailed item information and seller contact:

When a user wants to view detailed information about an item or contact a seller, the system needs to ensure that the user making the request has the necessary permissions and is authenticated. API tokens play a crucial role in this process.

Explanation:

In summary, using API tokens in your project enhances security, facilitates user authentication and authorization, and provides a scalable solution for managing user sessions and permissions, especially when accessing detailed item information and contacting sellers.

Below is a simplified example of how you might structure your API documentation for the web marketplace project:

Serv Marketplace API Documentation

Introduction

Welcome to the Serv Marketplace API documentation. This API allows developers to integrate and interact with the Serv web marketplace programmatically.

Base URL

The base URL for all API endpoints is: https://api.servmarketplace.com/v1

Authentication

The Serv API uses API tokens for authentication. To obtain an API token, users must authenticate through the web application.

Endpoints

1. User Information

GET /v1/user

2. Item Listing

GET /v1/items

3. Item Details

GET /v1/items/{item_id}

4. Create Item (Seller)

POST /v1/items