This project is a modern, aesthetically pleasing personal homepage and blog, also serving as a platform for personal tools. It's built with a React frontend and a Python (FastAPI) backend.
- Frontend:
- Framework: React (with Vite)
- Styling: Tailwind CSS
- UI Primitives: Headless UI / shadcn/ui
- Routing: React Router
- State Management: Zustand (or other suitable)
- Data Fetching: TanStack Query + Axios/Fetch
- Icons: Lucide Icons
- Backend:
- Framework: Python with FastAPI
- Database: SQLite (initially)
- Data Validation: Pydantic
- Content: Markdown (served via API, rendered by React)
- Homepage: Bento Grid layout, Hero section, self-intro, project highlights, latest articles, social links.
- Blog: List & Detail views, Markdown rendering, reading progress, tags.
- Academic Homepage: Professional, information-centric design.
- Admin Panel / Personal Workbench: Secure area for content management (CRUD for posts, categories, tags) and integrated personal tools (e.g., RSS reader, To-Do list placeholders).
(Refer to design.md for more detailed feature descriptions)
The project is organized into two main sub-directories:
frontend/: Contains the React + Vite frontend application.backend/: Contains the Python + FastAPI backend application.
Refer to CONTRIBUTING.md for detailed guidelines on the structure within each sub-project.
- Node.js (latest LTS version recommended for frontend)
- npm or yarn
- Python (3.9+ recommended for backend)
- pip and virtualenv (or Poetry/PDM for backend dependency management)
- Navigate to the frontend directory:
cd frontend - Install dependencies:
npm install # or # yarn install
- Start the development server:
The frontend will typically be available at
npm run dev # or # yarn dev
http://localhost:5173.
- Navigate to the backend directory:
cd backend - Create and activate a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies (assuming
requirements.txtorpyproject.tomlfor Poetry/PDM):pip install -r requirements.txt # Or poetry install / pdm install - Set up environment variables: Create a
.envfile in thebackend/directory based on a.env.example(if provided). - Start the development server (FastAPI with Uvicorn):
The backend API will typically be available at
uvicorn app.main:app --reload # Adjust 'app.main:app' as per your backend structurehttp://localhost:8000.
Please adhere to the conventions and practices outlined in CONTRIBUTING.md. This includes naming conventions, code style, commit messages, and more. 不过更重要的还是我们要严格遵循安全性原则。
Important: This project uses a Conventional Commits format for commit messages.
We welcome contributions! Please see CONTRIBUTING.md for details on how to contribute, our code of conduct, and the process for submitting pull requests.
This project is licensed under the MIT License. See the LICENSE file for details.