This guide helps Windows contributors set up SecuScan locally using PowerShell and common Windows development tools.
Install the following before starting:
- Python 3.11+
- Node.js 20+
- npm 10+
- Git
- Docker Desktop (optional)
Verify installations:
python --version
node -v
npm -v
git --versionWindows contributors can use PowerShell, Windows Terminal, or Git Bash for most contribution workflows. Windows Subsystem for Linux (WSL) is not required for general development.
WSL is optional for:
- Documentation updates
- Frontend development
- Backend development using the Windows Python installation
- Running Git commands
- Opening pull requests
WSL may provide a smoother experience when:
- Running Linux-focused shell workflows
- Using Bash scripts extensively
- Working with Docker Desktop and WSL2 integration
- Reproducing issues that occur only in Linux environments
This guide focuses on native Windows development tools. WSL-specific setup, Linux package management, and Linux distribution configuration are not covered here.
git clone https://github.com/utksh1/SecuScan.git
cd SecuScanIf you are contributing from a fork, add the main repository as upstream so
you can rebase on the latest main before opening a pull request:
git remote add upstream https://github.com/utksh1/SecuScan.git
git fetch upstreampython -m venv venv.\venv\Scripts\Activate.ps1source venv/Scripts/activatepip install -r backend/requirements.txt
pip install -r backend/requirements-dev.txtpython -m uvicorn backend.secuscan.main:app --reload --host 127.0.0.1 --port 8000Backend should now run at:
http://127.0.0.1:8000
Swagger documentation:
http://127.0.0.1:8000/docs
If you prefer the repository helper scripts, run them from Git Bash instead of PowerShell because they are shell scripts:
./setup.sh
./start.shMove into the frontend directory:
cd frontendInstall dependencies:
npm installRun the frontend:
npm run dev -- --host 127.0.0.1 --port 5173Frontend should now run at:
http://127.0.0.1:5173
Use the repository test script to create the isolated venv_tests environment
and install test dependencies:
./testing/test_python.shAfter the first run, you can execute a single backend test file directly.
.\venv_tests\Scripts\Activate.ps1
python -m pytest testing/backend/test_task_pagination.py -v
deactivatesource venv_tests/Scripts/activate
python -m pytest testing/backend/test_task_pagination.py -v
deactivateInstall Docker Desktop for Windows:
https://www.docker.com/products/docker-desktop/
During installation:
- Enable WSL2 integration if prompted
- Restart your system after installation
Verify Docker installation:
docker --version
docker compose versionRun the project stack:
docker compose up --buildIf docker compose fails even though Docker Desktop is installed, open Docker
Desktop first and wait until the engine reports it is running.
If virtual environment activation fails with:
running scripts is disabled on this system
Run:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserThen retry activation.
If python is not recognized:
- Reinstall Python
- Ensure "Add Python to PATH" is checked during installation
Verify again:
python --versionVerify versions:
node -v
npm -vIf commands fail:
- Reinstall Node.js
- Restart the terminal
Clear npm cache:
npm cache clean --forceReinstall dependencies:
npm installIf Vite still fails to start after dependency updates, remove the existing install and reinstall from scratch:
Remove-Item -Recurse -Force node_modules
Remove-Item package-lock.json
npm installUse Git Bash for commands that rely on Unix shell syntax:
source venv/Scripts/activate
./testing/test_python.shUse PowerShell for Windows-native commands:
.\venv\Scripts\Activate.ps1If the backend or frontend fails to start because the port is already in use, find the conflicting process and stop it.
Check which process is using the port:
netstat -ano | findstr :8000
netstat -ano | findstr :5173Stop the process by PID:
taskkill /PID <PID> /Fgit checkout -b feature/my-feature-namegit statusgit add .git commit -m "docs: update Windows contributor guide"git push origin feature/my-feature-nameUpdate your branch with the latest upstream changes:
git pull --rebase upstream mainIf upstream does not exist yet, confirm your remotes first:
git remote -vIf conflicts appear:
- Open conflicted files
- Resolve conflicts manually
- Stage resolved files:
git add .- Continue rebase:
git rebase --continueAbort rebase if necessary:
git rebase --abort- PowerShell
- Windows Terminal
Optional:
- Git Bash
- Python
- Pylance
- ESLint
- Prettier
- Docker
- GitLens
- README.md
- CONTRIBUTING.md
- SECURITY.md
- Docker Documentation: https://docs.docker.com/
- Python Documentation: https://docs.python.org/3/
- Node.js Documentation: https://nodejs.org/en/docs/
Before opening a pull request:
- Ensure backend starts successfully
- Ensure frontend starts successfully
- Run tests if applicable
- Verify formatting and lint checks pass
- Keep pull requests focused and well-scoped
This guide is intended to help Windows contributors onboard faster and reduce common local setup issues.