An open API service indexing awesome lists of open source software.

https://github.com/eitanbakirov/genetisched


https://github.com/eitanbakirov/genetisched

fastapi python vuejs

Last synced: 5 months ago
JSON representation

Awesome Lists containing this project

README

          

# 🧬 GenetiSched - Genetic Counseling Scheduling System

A lightweight, web-based scheduling platform designed for genetic counseling departments.
The system allows managers to assign interns to senior counselors, manage room availability, and schedule office duty rotationsβ€”based on availability, employment percentage, and internal rules.

## πŸš€ Features

- Add and manage employees (interns and senior counselors)
- Set employee availability and employment percentage
- Automatic schedule generation based on rules
- Room management and assignment
- Office duty rotation scheduling
- Individual schedule viewing

## πŸ› οΈ Tech Stack

- Backend: FastAPI (Python)
- Frontend: Vue.js + TailwindCSS
- Data Storage: JSON file (can be upgraded to SQLite/PostgreSQL)
- API Communication: REST using Axios

## πŸ“‹ Prerequisites

- Python 3.8+
- Node.js 16+
- npm or yarn

## πŸš€ Getting Started

### Backend Setup

1. Navigate to the backend directory:
```bash
cd backend
```

2. Create a virtual environment and activate it:
```bash
python -m venv venv
venv\Scripts\activate # On Windows
```

3. Install dependencies:
```bash
pip install -r requirements.txt
```

4. Run the backend server:
```bash
uvicorn main:app --reload
```

The backend will be available at `http://localhost:8000`

### Frontend Setup

1. Navigate to the frontend directory:
```bash
cd frontend
```

2. Install dependencies:
```bash
npm install
```

3. Run the development server:
```bash
npm run dev
```

The frontend will be available at `http://localhost:5173`

## πŸ“ Project Structure

```
/genetisched
β”œβ”€β”€ backend/
β”‚ β”œβ”€β”€ main.py # FastAPI entry point
β”‚ β”œβ”€β”€ api.py # Employee routes
β”‚ β”œβ”€β”€ scheduler.py # Scheduling logic
β”‚ β”œβ”€β”€ models.py # Employee data model
β”‚ └── employees.json # Temporary employee storage
β”‚
└── frontend/
β”œβ”€β”€ public/
β”‚ └── index.html
β”œβ”€β”€ src/
β”‚ β”œβ”€β”€ App.vue
β”‚ β”œβ”€β”€ main.js
β”‚ └── components/
β”‚ β”œβ”€β”€ EmployeeForm.vue
β”‚ β”œβ”€β”€ ScheduleTable.vue
β”‚ └── EmployeeSchedule.vue
└── package.json
```

## πŸ“ License

MIT License