도서관 책을 빌릴 수 있는지 알려주는 Web API 서비스
A Korean library book availability checker that provides both a web interface and REST API to search for books across multiple libraries in the Seoul metropolitan area.
- 🔍 Search books across multiple Korean libraries (판교, 동탄, 성남, etc.)
- 📚 Real-time availability checking
- 🔗 Direct links to book detail pages
- 🌐 Web UI and REST API endpoints
- 🎨 Modern responsive interface using Tailwind CSS framework
- 📱 Mobile-friendly design with touch-optimized controls
- 🔎 Incremental library search filter
- 📜 Search history with localStorage persistence
- ⚛️ React 19 frontend with Vite
Backend:
- Node.js (>=22.22.0)
- Express.js
- dongnelibrary npm package
Frontend:
- React 19
- Vite 7
- Tailwind CSS
git clone https://github.com/afrontend/dlserver.git
cd dlserver
npm install
npm run build
npm run webapp
Server will start on port 3000 (or use PORT environment variable to customize)
VITE_GA_ID: Optional GA4 measurement ID for the Vite web app. Example:G-XXXXXXXXXX
Copy .env.example to .env or set the variable in your deployment environment before building.
Development with hot reload:
npm run webapp # Terminal 1: Start Express server
npm run dev # Terminal 2: Start Vite dev server with hot reload
Build for production:
npm run build # Outputs to dist/
To run the MCP server instead:
npm start
GET /
Main web application interface for searching books
GET /:title/:libraryName
Returns formatted HTML with book availability markers (✓/✖)
Example: http://localhost:3000/javascript/판교
GET /search?title=<title>&libraryName=<libraryName>
Returns JSON array of book objects with availability data
Example: http://localhost:3000/search?title=javascript&libraryName=판교
GET /libraryList
Returns JSON array of all library names
로컬 서버에서 확인 (http://localhost:3000/)
서버에서 확인 (https://dongne.onrender.com/)
- Open http://localhost:3000/ in your browser
- Use the library search filter to find a specific library by typing part of its name
- Select a library from the dropdown (or select "도서관을 선택하세요." to search all libraries)
- Enter a book title (recent searches appear in a dropdown when focusing the input)
- Click search to see availability across selected library/libraries
Get all libraries:
curl http://localhost:3000/libraryListSearch for a book:
curl "http://localhost:3000/search?title=javascript&libraryName=판교"Response format:
[
{
"title": "Book Title",
"exist": true,
"libraryName": "Library Name",
"bookUrl": "https://..."
}
]- Backend (server.ts): Express.js server with endpoints for book search, library list, and module list retrieval
- Frontend (src/): React 19 application built with Vite, featuring search bar, library selector, and book list components
- Data Source: Uses the
dongnelibrarynpm package for library API integration - Styling: Tailwind CSS framework for modern, responsive UI
This project includes MCP (Model Context Protocol) server implementations:
- mcp-server-STDIO.ts: Standard input/output based MCP server
- mcp-server-SSE.ts: Server-sent events based MCP server
See MCPSTDIO_README.md for more details on MCP server configuration.
Claude에서 원격 MCP 서버를 연결하여 사용할 수 있다.
Claude 설정 > 커넥터 > 커스텀 커넥터 추가 > 원격 MCP 서버 URL 입력
MIT © Bob Hwang