A modern report management system built with FastAPI and React.
- Markdown-based report creation and editing
- Inline image support
- File attachments
- Full-text search
- Responsive design
- JWT Authentication
- Pagination and sorting
-
Install Conda if you haven't already:
# On macOS with Homebrew brew install --cask miniconda # Or download from official site # https://docs.conda.io/en/latest/miniconda.html
-
Create and activate Conda environment:
# Create environment from environment.yml conda env create -f environment.yml # Activate environment conda activate report-sys
-
Run the backend server:
# Navigate to backend directory cd backend # Run the FastAPI server with auto-reload uvicorn app.main:app --reload --port 8000
-
The backend server will be running at
http://localhost:8000- API documentation:
http://localhost:8000/docs - Alternative docs:
http://localhost:8000/redoc
- API documentation:
-
Install Node.js dependencies:
# Navigate to frontend directory cd frontend # Install dependencies npm install
-
Set up environment variables:
# Copy example env file cp .env.example .env # Edit .env file with your settings # VITE_API_URL=http://localhost:8000/api
-
Run the development server:
# Start Vite dev server npm run dev -
The frontend will be available at
http://localhost:5173
report-sys/
├── backend/ # FastAPI backend
│ ├── app/
│ │ ├── core/ # Core functionality
│ │ ├── models/ # Database models
│ │ ├── routers/ # API routes
│ │ └── schemas/ # Pydantic schemas
│ └── tests/ # Backend tests
├── frontend/ # React frontend
│ ├── src/
│ │ ├── api/ # API client
│ │ ├── components/ # React components
│ │ ├── contexts/ # React contexts
│ │ └── pages/ # Page components
│ └── tests/ # Frontend tests
└── uploads/ # Uploaded files
DATABASE_URL: SQLite database URLSECRET_KEY: JWT secret keyALGORITHM: JWT algorithm (default: HS256)ACCESS_TOKEN_EXPIRE_MINUTES: Token expiry
VITE_API_URL: Backend API URL
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.