Skip to content

raczyk/the-bank

 
 

Repository files navigation

The Bank

Project Structure

.github
  └─ workflows
        └─ CI with pnpm cache setup
.vscode
  └─ Recommended extensions and settings for VSCode users
apps
  ├─ mobile
  |   ├─ Expo SDK 49
  |   ├─ React Native using React 18
  |   ├─ Navigation using Expo Router
  |   ├─ Tailwind using Nativewind
  |   └─ Typesafe API calls using tRPC
  └─ web
      ├─ Next.js 13
      ├─ React 18
      ├─ Tailwind CSS
      └─ shadcn UI
tooling
  ├─ eslint
  |   └─ Eslint config for monorepo packages
  ├─ prettier
  |   └─ Prettier config for monorepo packages
  ├─ tailwind
  |   └─ Tailwind configuration shared in WEB and mobile
  └─ tsconfig
      └─ TypeScript config for monorepo packages
packages
  ├─ api
  |   └─ tRPC v10 router definition
  ├─ core
  |   └─ Shared business logic
  ├─ env
  |   └─ Shared Tailwind & Eslint configs
  ├─ scripts
  |   └─ Scripts to interact with DB like seed etc
  └─ db
      └─ Typesafe db calls using Drizzle

Pre-requirements

Make sure that you have installed and configured:

Quick Start

To get it running, follow the steps below:

Setup dependencies

  • Install dependencies

    pnpm i
  • Copy example .env files

    cp .env.example .env
    # Expo needs a different .env file
    cp apps/mobile/.env.example .env
  • Database setup

    docker run --name the-bank-mysql -e MYSQL_ROOT_PASSWORD=password -d -p 3306:3306 mysql

    You can also get one from https://planetscale.com/

  • Database synchronization (optional)

    pnpm db:push
    

Get started!

We need to run mobile and web in parallel

  • Web:

    pnpm web
  • iOS simulator:

    pnpm mobile

Clear workspace

If you need to reinstall all packages run:

# Clear all deps and cache
pnpm clean:workspaces

# Install all dependencies
pnpm i

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 94.6%
  • JavaScript 4.3%
  • CSS 1.1%