🎬 Introduction

Overview

The goal of this website is to provide comprehensive documentation and examples of how Pinflow is developed and how it works.

Installation

Clone the repository and run npm install in the root folder. Then, inside the root folder create a .env file and add the following variables:


NEXTAUTH_URL=
AUTH_GOOGLE_ID=
AUTH_GOOGLE_SECRET=
AUTH_SECRET=
AUTH_TRUST_HOST=true
DATABASE_URL=


# Microservices
ORBIT_API_URL=
ORBIT_API_KEY=


NEXT_PUBLIC_BASE_URL=
NEXT_PUBLIC_TRPC_API_URL="${NEXT_PUBLIC_BASE_URL}/api/trpc"

# Mapbox
NEXT_PUBLIC_MAPBOX_ACCESS_TOKEN=


# Stripe
# Stripe keys
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=
STRIPE_SECRET_KEY=

# Feature flags
FLAGSMITH_ENVIRONMENT_ID=
FLAGSMITH_API_URL=

# Google Translate
GOOGLE_CLOUD_API_KEY=

To run the application, run npm run dev in the root folder.

Development

While developing Pinflow, I followed the SOLID programming principles, especially the Dependency Injection (opens in a new tab) principle, allowing the application to be easily testable and maintainable.

Learn more about the architecture and services in the Architecture section.

Future Development

In the future, I plan to add more features to Pinflow, such as:

  • An improved Order Recommendation System
  • Currency conversion
  • A notification system

Another ambitious goal is to create a locker-like device that users can use to deliver and receive packages securely. This device would be called Pinbox.

More details about future development