Skip to content

Luna1xiao/Open_Source_Software_Project

Repository files navigation

小组成员github账户

姓名 账户
萧海玥(组长) https://github.com/Luna1xiao/
彭一珅 https://github.com/tuziTZ
刘蔚美 https://github.com/Annie191
王瑞彬 https://github.com/Kaleido66
杭东升 https://github.com/ddsplus
赵欣雨 https://github.com/YWDJ123
吴天辰 https://github.com/jiaotangbuding177
徐晨 https://github.com/OrangerXu
屠恒彦 https://github.com/hengyantu

Mercury

A local-first, cross-platform RSS reader with AI-assisted summarization and translation. Built as a course project for the Open-Source Software class.

Team: see docs/team.md.

Stack

  • Frontend: React 19 + Vite + TypeScript (packages/ui)
  • Backend: Python 3.11+ + FastAPI + SQLite (backend/)
  • Desktop shell: Tauri (apps/desktop/)
  • Type contract: Pydantic → OpenAPI → openapi-typescriptpackages/shared-types
  • Tooling: pnpm workspaces, uv for Python deps

See docs/architecture.md for the full picture.

Prerequisites

  • Node.js 20+
  • pnpm 10+ (corepack enable && corepack prepare pnpm@10.11.0 --activate)
  • Python 3.11+
  • uvcurl -LsSf https://astral.sh/uv/install.sh | sh

Setup

# 1. Install JS deps (root)
pnpm install

# 2. Install Python deps
cd backend && uv sync && cd ..

Development

Run backend and frontend in two terminals:

# Terminal 1 — backend on :8000
pnpm dev:backend

# Terminal 2 — UI dev server on :5173
pnpm dev:ui

Open http://127.0.0.1:5173. The UI talks to the backend at http://127.0.0.1:8000.

Backend health check: http://127.0.0.1:8000/healthz OpenAPI docs: http://127.0.0.1:8000/docs

Regenerating TypeScript Types from the Backend

pnpm gen:types

Run this whenever a Pydantic model in backend/app/schemas/ or a route signature changes. Commit the regenerated packages/shared-types/src/generated.ts in the same PR.

Running Tests and Lint

# JS / TS
pnpm typecheck
pnpm test

# Python
cd backend
uv run pytest
uv run ruff check

Repository Layout

.
├── apps/
│   └── desktop/         Tauri shell (member 8)
├── backend/             Python FastAPI sidecar
│   ├── app/             composition root + Pydantic schemas (tech lead)
│   ├── feed_engine/     RSS/Atom/OPML
│   ├── db/              SQLite + repositories
│   ├── content_cleaner/ HTML cleaning + Markdown
│   ├── agent_summary/   summary agent
│   ├── agent_translation/ translation agent
│   └── llm_providers/   provider abstractions
├── packages/
│   ├── ui/              React frontend
│   ├── shared-types/    generated TS contract
│   └── ipc-client/      typed fetch wrapper
├── docs/                architecture, workflow, contract, team
└── .github/             CI, PR template, CODEOWNERS

Each module has its own AGENT.md describing scope, contract, and acceptance criteria.

Documentation

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors