Skip to content

Repository files navigation

Let Eat Go

食事をきっかけに、新しい人と新しい日常をつなぐソーシャルダイニングプラットフォーム

Let Eat Go — Social Dining Platform

Frontend CI Next.js 15 React 18 TypeScript 5 Docker GitHub Actions

About

Let Eat Goは、共通の関心を持つ人々が食事を通じて交流できるWebアプリケーションです。

ユーザーは地域・日程・参加条件からソーシャルダイニングを探し、自分でイベントを開催したり、既存のイベントに参加したりできます。参加前後のコミュニケーションまで一つのサービスで完結できるよう、リアルタイムチャット、レビュー、アルバム、プロフィール機能を統合しました。

本プロジェクトは4名で開発したチームプロジェクトです。フロントエンド、バックエンド、AIサービスを独立したリポジトリとして構成し、GitHub Issues・Pull Requests・Docker・GitHub Actionsを用いて開発とデプロイを行いました。

Project status: 現在、公開デモ環境とローカル開発手順を再整備しています。ソースコードと主要機能は各リポジトリで確認できます。

Key Features

Feature Description
ソーシャルダイニング検索 開催中のイベントを一覧・地図から検索し、地域や条件に合う食事会を発見
イベント開催・参加 開催日時、場所、定員、年齢・性別条件、料金などを設定して募集・参加
リアルタイムチャット Socket.IOを利用したイベント参加者間のリアルタイムメッセージング
ソーシャルログイン Google・Kakao OAuthとJWTによる認証・セッション管理
マップ連携 Kakao Maps上にイベントを表示し、位置情報から詳細を確認
アルバム・コミュニティ 画像投稿、コメント、いいねを通じて食事会の思い出を共有
レビュー・プロフィール 開催・参加履歴、レビュー、ユーザー情報を一元管理
多言語UI 韓国語・日本語の表示切り替えに対応
AIセーフティ FastAPIとDistilBERTによる不適切表現の推論APIをバックエンドから利用

Service Repositories

Service Responsibility Repository
Web Client UI、状態管理、OAuth連携、地図、チャット、国際化 This repository
Backend API REST API、JWT認証、WebSocket、ドメインロジック、DB・S3連携 project-leteatgo-nestjs-repo
AI Service DistilBERTモデルのロード、テキスト分類、ヘルスチェックAPI ai-service

Architecture

flowchart TD
    U[Browser] --> FE[Next.js Web Client]
    FE -->|REST / JWT| API[NestJS API]
    FE <-->|Socket.IO| API
    API --> DB[(PostgreSQL)]
    API --> S3[AWS S3]
    API --> AI[FastAPI AI Service]
    FE --> OAuth[Google / Kakao OAuth]
Loading
  • Frontend・BackendはDocker imageとしてビルドし、GitHub ActionsからAmazon ECR / ECSへデプロイする構成です。
  • BackendはNestJSの機能単位のModuleとTypeORM Entityでドメインを分割しています。
  • AI Serviceは起動時にS3から学習済みモデルを取得し、推論APIとしてBackendから利用されます。

Tech Stack

Layer Technologies
Frontend Next.js 15, React 18, TypeScript, Redux Toolkit, MUI, Chart.js, Socket.IO Client, Kakao Maps SDK
Backend NestJS 11, TypeScript, TypeORM, PostgreSQL, Passport, JWT, Socket.IO, Swagger
AI FastAPI, PyTorch, Transformers, DistilBERT, Pydantic
Infrastructure Docker, AWS ECS, Amazon ECR, Amazon S3, GitHub Actions
Collaboration GitHub Issues, Pull Requests, issue / PR templates, branch conventions

Frontend Structure

app/          # App Router pages and route-level UI
components/   # Reusable UI components
contexts/     # Language context
hooks/        # Reusable React hooks
lib/          # Authentication and API utilities
locales/      # Korean and Japanese translations
public/       # Static assets
store/        # Global application state

Getting Started

Prerequisites

  • Node.js 20+ and npm 10+ for native local development
  • Docker and Docker Compose for containerized local development
  • Running Let Eat Go Backend API
  • Google / Kakao developer credentials for OAuth and Kakao Maps

Installation

git clone https://github.com/YJU-5/project-leteatgo-nextjs-repo.git
cd project-leteatgo-nextjs-repo
npm ci

Create .env.local in the project root:

NEXT_PUBLIC_API_URL=http://localhost:3001/api
NEXT_PUBLIC_ENV=development

NEXT_PUBLIC_KAKAO_CLIENT_ID=
NEXT_PUBLIC_KAKAO_REDIRECT_URI=http://localhost:3005/login/kakao
NEXT_PUBLIC_KAKAO_MAP_KEY=
NEXT_PUBLIC_KAKAO_REST_API_KEY=

NEXT_PUBLIC_GOOGLE_ID=
NEXT_PUBLIC_GOOGLE_REDIRECT_URI=http://localhost:3005/login/google

Start the development server:

npm run dev

Open http://localhost:3005.

Local Docker

The frontend can also be built and run locally with Docker Compose.

Make sure the local Backend API is running on http://localhost:3001, then run:

docker compose up --build

Open http://localhost:3005.

The Docker build uses the following NEXT_PUBLIC_* build-time variables:

Variable Local Default
NEXT_PUBLIC_API_URL http://localhost:3001/api
NEXT_PUBLIC_KAKAO_REDIRECT_URI http://localhost:3005/login/kakao
NEXT_PUBLIC_GOOGLE_REDIRECT_URI http://localhost:3005/login/google
NEXT_PUBLIC_KAKAO_MAP_KEY Empty

You can override a build-time variable when starting Docker Compose:

NEXT_PUBLIC_KAKAO_MAP_KEY=your_key docker compose up --build

NEXT_PUBLIC_* variables are embedded into the Next.js application at build time. If these values change, rebuild the image with docker compose up --build.

The local port mapping is:

Host localhost:3005
        ↓
Next.js container:3000

To stop the frontend container:

docker compose down

Available Commands

Command Purpose
npm run dev Start the local development server on port 3005
npm run build Create a production build
npm run start Start the production server
npm run lint Run ESLint across the frontend source
npm run typecheck Check TypeScript types without emitting files

Team

Roadmap

  • 公開デモ環境の再構築
  • .env.exampleの追加と設定手順の統一
  • Frontend / Backend / AI Serviceのローカル起動をDocker Composeで統合
  • Unit / E2E testとCI quality gateの拡充
  • API・DB設計ドキュメントとスクリーンショットの追加

License

This repository was created as an educational team project. No open-source license has been declared.

About

Next.js web client for the Let Eat Go social dining platform.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages