Skip to content

Flexi-Store is a Sever that Contains the Rest API for the Flexi Store Ecommerce Kotlin Multiplatform Project.

License

Notifications You must be signed in to change notification settings

KhubaibKhan4/Flexi-Store-Server

Flexi-Store-Server

Flexi Store is an Ecommerce Application Server designed to provide a flexible and scalable backend for online stores.

Table of Contents

Introduction

Flexi Store is a server-side application designed to support ecommerce functionalities. It provides a robust backend system for managing users, categories, and products, facilitating the development of ecommerce platforms.

Features

  • User authentication and authorization
  • CRUD operations for managing users, categories, and products
  • Secure API endpoints for interacting with the server
  • Flexible and scalable architecture for accommodating future enhancements

Future Plans

  • Deployment on Heroku or Google.
  • Enhancement to old Codebase.

Installation

To install Flexi Store Server locally, follow these steps:

  1. Clone the repository:

    git clone https://github.com/your-username/flexi-store-server.git
  2. Navigate to the project directory:

    cd flexi-store-server
    
  3. Install dependencies:

 ./gradlew build
  1. Start the server:
    ./gradlew run
    

Setup

Remember you need to setup the Flexi-Store Server to use the Flexi-Store Applications. It's mandatory, otherwise it will not work at all. To Setup, you need to clone this on your local device. Open it in the Intellij IDEA. After Cloning the project, You need to download the PG Admin 4 from there official website and install it. After Installing that, You need to create a data with any name. Now, open the Intellij IDEA where your cloning project is running, Click on Edit / Run Configuration > Environment Variables >, here you need to add two values inside the variables. JDBC_DATABASE_URL= jdbc:postgresql:databaseName?user=postgres&password=yourpass & JDBC_DRIVER= org.postgresql.Driver. After Adding these into your Environment Variables, You are good to go. To Use this Server inside your Application Locally, You need to simply get the local ip. For that you need to Terminal or Command Prompt. Get the Local IP and replace the base URL kotlin/utils/Constant.kt & URL http://your_ip:8080/. If you still gets any error, Please create an issue here.

Flexi-Store-KMP

Flexi-Store is developed using Ktor and is mandatory for the backend of the Flexi-Store-KMP. You can find the Flexi-Store-KMP repository here.

API Endpoints

Users

Get all Users

  GET /v1/users
Parameter Type Description
api_key string Not Required. Your API key

Get Single User

  GET /v1/users/{id}
Parameter Type Description
id string Required. Id of item to fetch

Create a New User

  POST /v1/users

Login

  GET /v1/login

Delete Single User

  DELETE /v1/users/{id}
Parameter Type Description
id string Required. Id of users to delete data

Update Single User

  PUT /v1/users/{id}
Parameter Type Description
id string Required. Id of users to update data

Categories

Create New Category

  POST /v1/categories
Parameter Type Description
api-key string Not Required. api-key for authentication

Get All Categories

  GET /v1/categories
Parameter Type Description
api-key string Not Required. api-key for authentication

Get Category By ID

  GET /v1/categories/{id}
Parameter Type Description
id string Required. Id of Category

DELETE Category By ID

  DELETE /v1/categories/{id}
Parameter Type Description
id string Required. Id of Category

Update Category

  PUT /v1/categories/{id}
Parameter Type Description
id string Required. Id of Category

Products

Create New Product

  POST /v1/products
Parameter Type Description
api-key string Required. api-key for Authentication

Get Product

  GET /v1/products/{id}
Parameter Type Description
id string Required. id for products

DELETE Product

  DELETE /v1/products/{id}
Parameter Type Description
id string Required. id for products

Update Product

  PUT /v1/products/{id}
Parameter Type Description
id string Required. id for products

Promotions Cards

Create New Promotions

  POST /v1/promotions
Parameter Type Description
api-key string Required. api-key for Authentication

Get All Promotions

  GET /v1/promotions
Parameter Type Description
api-key string Required. api-key for Authentication

Get Single Promotion

  GET /v1/promotions/{id}
Parameter Type Description
id string Required. id for promotion

Delete Promotion

  DELETE /v1/promotions/{id}
Parameter Type Description
id string Required. id for promotion

Update Promotion

  PUT /v1/promotions/{id}
Parameter Type Description
id string Required. id for promotion

💰 You can help me by Donating

BuyMeACoffee PayPal Patreon Ko-Fi

Screenshots

Screenshot 1 Screenshot 2 Screenshot 3 Screenshot 4 Screenshot 5 Screenshot 6 Screenshot 7 Screenshot 8 Screenshot 9 Screenshot 10 Screenshot 11

Stargazers

Stargazers repo roster for @KhubaibKhan4/Flexi-Store-Server

Forkers

Forkers repo roster for @KhubaibKhan4/Flexi-Store-Server

Contributing

Contributions are welcome! Please check the CONTRIBUTING.md file for guidelines.

License

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