Skip to content

nos-nart/appyplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AppyPlace

AppyPlace is a full-stack monorepo application for discovering and reviewing places. It features a modern tech stack with a focus on type safety, performance, and developer experience.

Tech Stack

Backend (apps/backend)

  • Runtime: Node.js
  • Framework: Hono
  • API: GraphQL using GraphQL Yoga and Pothos (Code-first schema)
  • Database: PostgreSQL with Prisma ORM
  • Authentication: Better Auth
  • Storage: S3-compatible storage (RustFS in dev)
  • Observability: OpenTelemetry with Jaeger

Frontend (apps/frontend)

Infrastructure

  • Package Manager: pnpm (Workspaces)
  • Containerization: Docker & Docker Compose
  • Testing: Playwright (E2E), Vitest (Unit)

Prerequisites

Before running the project, ensure you have the following installed:

  • Node.js (v20 or higher)
  • pnpm (v9 or higher)
  • Docker and Docker Compose

Getting Started

  1. Clone the repository:

    git clone <repository-url>
    cd appyplace
  2. Install dependencies:

    pnpm install
  3. Environment Setup:

    Backend: Navigate to the backend directory and set up the environment variables:

    cd apps/backend
    cp .env.example .env

    Note: Update the .env file with your specific configuration if needed. For development, the defaults usually work with the provided Docker setup.

    Frontend: Navigate to the frontend directory and set up the environment variables:

    cd ../frontend
    cp .env.example .env

    Note: You MUST provide a valid Mapbox token in VITE_MAPBOX_TOKEN for the maps to work. Return to root: cd ../..

  4. Start Infrastructure:

    Start the database, object storage, and tracing services using Docker:

    # From the root directory
    pnpm --filter backend dev:up
  5. Initialize Database:

    Run migrations and seed the database:

    pnpm --filter backend dev:setup
  6. Run the Application:

    Start both the backend and frontend in development mode:

    pnpm dev

Scripts

  • pnpm dev: Start both frontend and backend in development mode.
  • pnpm dev:backend: Start only the backend.
  • pnpm dev:frontend: Start only the frontend.
  • pnpm build: Build all applications.
  • pnpm test: Run frontend unit tests.
  • pnpm e2e: Run E2E tests with Playwright.
  • pnpm lint: Lint the codebase using Oxlint.

Project Structure

/
├── apps/
│   ├── backend/    # Node.js/Hono/GraphQL Backend
│   └── frontend/   # React/Vite Frontend
├── packages/       # Shared packages (if any)
└── ...

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages