AI-powered device management, ticketing, and predictive maintenance platform.
AURA is a full-stack platform for managing devices, support tickets, and maintenance workflows — with a growing AI layer for automated ticket classification, predictive maintenance, and computer vision-based device scanning.
Built as a portfolio project demonstrating end-to-end software engineering: REST APIs, React dashboards, ML integration, MLOps, and cloud deployment.
React Frontend (Vite + TailwindCSS)
↓
FastAPI Gateway (JWT auth · routing · validation)
↓
┌─────────────────────────────────────────┐
│ Auth Service Device Service │
│ Ticket Service AI Classifier │
│ Predictive ML Computer Vision │
└─────────────────────────────────────────┘
↓
PostgreSQL Database
↓
Cloud Storage / Logs
| Phase | Status | Description |
|---|---|---|
| Phase 1 | Completed | Auth, dashboard, inventory, ticketing |
| Phase 2 | Completed | AI ticket classifier (NLP) |
| Phase 3 | Completed | Predictive maintenance ML model |
| Phase 4 | Completed | Computer vision device scanner |
| Phase 5 | Completed | Docker, CI/CD, cloud deployment |
| Repo | Description |
|---|---|
aura-platform |
This repo — main platform |
aura-ticket-ai |
NLP ticket classifier |
aura-predictive-maintenance |
ML prediction engine |
aura-vision-ai |
Computer vision scanner |
aura-infra |
Docker + deployment configs |
- FastAPI — REST API framework
- SQLAlchemy — ORM
- Alembic — database migrations
- PostgreSQL — primary database
- python-jose — JWT authentication
- Pydantic — data validation
- React 18 + Vite
- TailwindCSS
- Axios — API client
- React Router
- scikit-learn / PyTorch
- Hugging Face Transformers
- OpenCV
- Docker + Docker Compose
- GitHub Actions — CI/CD
- Render / Railway / AWS — cloud deployment
- Python 3.11+
- Node.js 18+
- PostgreSQL 15+
- Git
git clone https://github.com/MandisaBiyela/aura-platform.git
cd aura-platformGit hooks (once per clone): keeps GitHub contributors aligned with human authors only by removing Cursor co-author trailers from commit messages.
git config core.hooksPath .githooksIn Cursor, you can also turn off Agents → Attribution → Commit attribution (or set commitAttribution to false in the Cursor CLI config) so co-author lines are not injected in the first place. See Cursor forum: co-author discussion.
cd backend
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txtCopy the environment file and fill in your values:
cp .env.example .envDATABASE_URL=postgresql://user:password@localhost:5432/aura_db
SECRET_KEY=your-secret-key-here
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30Run database migrations:
alembic upgrade headStart the API:
uvicorn app.main:app --reloadAPI will be live at http://localhost:8000
Interactive docs at http://localhost:8000/docs
cd frontend
npm install
npm run devFrontend will be live at http://localhost:5173
| Method | Endpoint | Description |
|---|---|---|
| POST | /auth/register |
Create a new user account |
| POST | /auth/login |
Login and receive JWT token |
| GET | /auth/me |
Get current authenticated user |
| Method | Endpoint | Description |
|---|---|---|
| GET | /devices |
List all devices |
| POST | /devices |
Add a new device |
| GET | /devices/{id} |
Get device by ID |
| PUT | /devices/{id} |
Update device |
| DELETE | /devices/{id} |
Delete device |
| Method | Endpoint | Description |
|---|---|---|
| GET | /tickets |
List all tickets |
| POST | /tickets |
Create a ticket |
| GET | /tickets/{id} |
Get ticket by ID |
| PATCH | /tickets/{id}/status |
Update ticket status |
aura-platform/
├── backend/
│ ├── app/
│ │ ├── main.py # FastAPI entry point
│ │ ├── auth/ # JWT authentication
│ │ ├── devices/ # Device inventory service
│ │ ├── tickets/ # Ticket management service
│ │ ├── models/ # SQLAlchemy models
│ │ └── database.py # DB connection
│ ├── alembic/ # Database migrations
│ ├── requirements.txt
│ └── .env.example
├── frontend/
│ ├── src/
│ │ ├── pages/ # Dashboard, Inventory, Tickets
│ │ ├── components/ # Reusable UI components
│ │ └── api/ # Axios service layer
│ └── package.json
├── architecture/ # Diagrams and docs
├── .github/
│ └── workflows/ # CI/CD pipelines (Phase 5)
└── README.md
# Always branch off dev
git checkout dev
git checkout -b feature/your-feature-name
# Work, commit often
git add .
git commit -m "feat: describe what you built"
# Push and open a pull request into dev
git push origin feature/your-feature-nameCommit message convention:
| Prefix | Use for |
|---|---|
feat: |
New feature |
fix: |
Bug fix |
docs: |
Documentation update |
refactor: |
Code restructure, no behaviour change |
test: |
Adding or updating tests |
chore: |
Tooling, config, dependencies |
- Project structure and GitHub setup
- Auth service (register, login, JWT)
- Device inventory CRUD
- Ticket management system
- React dashboard
- AI ticket classifier (Phase 2)
- Predictive maintenance model (Phase 3)
- Computer vision scanner (Phase 4)
- Docker + CI/CD + cloud deployment (Phase 5)
MIT — see LICENSE for details.