Welcome to Dexter — a Python SDET automation learning module built around the Order Board app. This guide gets you set up and productive as quickly as possible.
Dexter is a self-contained practice project that simulates a real-world automation engineering workflow. You will:
pytest| Requirement | Version |
|---|---|
| Python | 3.9 or later |
| pip | Latest (bundled with Python) |
| Git | Any recent version |
| Google Chrome | Latest stable |
| ChromeDriver | Must match your Chrome version |
Windows users: Use Git Bash or WSL2 for the best experience with the commands below.
git clone https://github.com/prasadg-veeam/Dexter.git
cd Dexter
python -m venv .venv
# macOS / Linux
source .venv/bin/activate
# Windows (Git Bash)
source .venv/Scripts/activate
# Windows (cmd)
.venv\Scripts\activate.bat
pip install -r requirements.txt
Start the Flask development server:
python -m src.app
The app is now available at http://localhost:5000.
http://localhost:5000 in your browser to see the Order Board.| Method | Endpoint | Description |
|---|---|---|
| GET | /api/health |
Health check |
| GET | /api/orders |
List all orders |
| POST | /api/orders |
Create a new order |
| PUT | /api/orders/<id> |
Update an order |
| DELETE | /api/orders/<id> |
Delete an order |
Example:
# Health check
curl http://localhost:5000/api/health
# Create an order
curl -X POST http://localhost:5000/api/orders \
-H "Content-Type: application/json" \
-d '{"item": "Widget", "price": 9.99, "qty": 2}'
# List all orders
curl http://localhost:5000/api/orders
Make sure the virtual environment is activated, then:
# Run all tests
pytest
# Run only API tests
pytest -m api
# Run only UI tests
pytest -m ui
# Run with verbose output
pytest -v
UI tests require Chrome and ChromeDriver. See CI/CD Guide for headless setup details.
Dexter/
├── .github/workflows/ci.yml ← GitHub Actions workflow
├── docs/ ← All documentation
│ ├── index.md ← GitHub Pages landing page
│ ├── onboarding.md ← This file
│ ├── development_guide.md ← Dev workflow for automation engineers
│ ├── best_practices.md ← Python automation best practices
│ ├── training_plan.md ← Structured trainee plan
│ ├── learning_path.md ← Phase-by-phase learning path
│ ├── tasks.md ← Hands-on tasks
│ └── ci_cd.md ← CI/CD guide
├── src/
│ ├── app.py ← Flask app entry point and routes
│ ├── data_store.py ← In-memory data layer
│ ├── static/app.js ← Front-end JavaScript
│ └── templates/index.html ← HTML template
├── tests/
│ ├── api/ ← API test files
│ ├── ui/ ← UI (Selenium) test files
│ └── conftest.py ← pytest fixtures
├── pytest.ini ← pytest configuration
├── requirements.txt ← Python dependencies
├── CONTRIBUTING.md ← Contribution guidelines
└── README.md ← Project overview