← Back

poi-manager: Map-First Personal POI Tracker poi-manager:以地图为主入口的个人 POI 足迹记录工具 poi-manager:地図ファーストの個人 POI 足跡記録ツール

github.com/revectores/poi-manager  ·  TypeScript · Next.js

1. Overview

1. 概述

1. 概要

poi-manager is a personal place-tracking tool built around a map interface. The idea is simple: keep a private library of places you've been — or want to go — searchable and browsable on a full-screen map, with per-place visit logs (date + notes) and visual distinction between visited and not-yet-visited markers.

poi-manager 是一个以地图为核心入口的个人地点记录工具。 设计思路简单:维护一个私有的地点库,记录你去过或想去的地方,支持在全屏地图上搜索和浏览, 为每个地点记录多次到访(时间 + 备注),并用视觉区分"已去过"和"未去过"的标记。

poi-manager は地図インターフェースを中心に据えた個人スポット管理ツールです。 コンセプトはシンプルです。訪れた場所や行きたい場所のプライベートライブラリを持ち、 フルスクリーンの地図で検索・ブラウズでき、スポットごとに複数回の訪問ログ(日時+メモ)を記録し、 訪問済みと未訪問のマーカーを視覚的に区別します。

2. Features

2. 功能

2. 機能

3. Tech Stack

3. 技术栈

3. 技術スタック

The stack is deliberately minimal for a personal tool — local SQLite means no server to run or database to host:

作为个人工具,技术栈有意保持精简——本地 SQLite 意味着无需运行额外服务,也无需托管数据库:

個人ツールとしてスタックは意図的にミニマルに設計されています。ローカル SQLite を使うため、サーバーもデータベースのホスティングも不要です:

LayerTechnology
FrameworkNext.js 16 (App Router) + TypeScript
StylingTailwind CSS + shadcn/ui
MapAmap (高德地图) JS API v2
ORMDrizzle ORM
DatabaseSQLite (better-sqlite3)
Data fetchingTanStack Query
层次技术
框架Next.js 16 (App Router) + TypeScript
样式Tailwind CSS + shadcn/ui
地图高德地图 JS API v2
ORMDrizzle ORM
数据库SQLite (better-sqlite3)
数据获取TanStack Query
レイヤー技術
フレームワークNext.js 16 (App Router) + TypeScript
スタイリングTailwind CSS + shadcn/ui
地図高德地図(Amap)JS API v2
ORMDrizzle ORM
データベースSQLite (better-sqlite3)
データ取得TanStack Query

The REST API lives under src/app/api/pois/ as Next.js route handlers. The SQLite file is at data/poi.db (gitignored), managed through Drizzle's schema-push workflow.

REST API 位于 src/app/api/pois/,以 Next.js 路由处理器实现。 SQLite 文件存放在 data/poi.db(已加入 .gitignore),通过 Drizzle 的 schema-push 工作流管理。

REST API は src/app/api/pois/ に Next.js ルートハンドラとして実装されています。 SQLite ファイルは data/poi.db(gitignore 済み)に置かれ、Drizzle の schema-push ワークフローで管理します。

4. Getting Started

4. 快速开始

4. はじめ方

You need an Amap JS API key from the Amap developer console. Then:

你需要在高德开放平台申请 JS API Key,然后:

Amap デベロッパーコンソールから JS API キーを取得してから:

cp .env.local.example .env.local
# fill in NEXT_PUBLIC_AMAP_KEY and NEXT_PUBLIC_AMAP_SECURITY_CODE

npm install
npm run db:push   # sync schema to SQLite
npm run dev       # http://localhost:3000

To inspect the database visually:

可视化查看数据库:

データベースをビジュアルで確認するには:

npm run db:studio