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
.