Get Started with ReViewPoint¶
**Fresh Windows mac๐ก**Docker Note**: Docker Desktop requires manual installation but isn't required for basic development (SQLite mode works without it).
๐ What Tools Get Installed? (Complete Transparency)¶
The automated installer is completely transparent about what it installs:
Core Tools Installed via Chocolatey:¶
Tool | Package | Purpose | Disk Space |
---|---|---|---|
Chocolatey | choco | Package manager for Windows | ~50MB |
Git | git | Version control system | ~300MB |
Node.js 18+ | nodejs | JavaScript runtime + npm | ~200MB |
Python 3.11+ | python | Backend runtime + pip | ~150MB |
Package Managers Installed via Native Tools:¶
Tool | Install Method | Purpose | Size |
---|---|---|---|
pnpm | npm install -g pnpm | Fast package manager | ~20MB |
pipx | python -m pip install --user pipx | Python app installer | ~10MB |
Hatch | pipx install hatch | Python environment manager | ~15MB |
Manual Installation Required:¶
Tool | Why Manual? | Required For |
---|---|---|
Docker Desktop | Large download, requires license acceptance | PostgreSQL development (optional) |
๐ก๏ธ Security & Privacy:¶
- All tools are official: Downloaded from official sources (chocolatey.org, nodejs.org, python.org)
- No data collection: The installer only installs tools, no telemetry
- PATH modifications: Tools are added to Windows PATH for command-line access
- Admin privileges: Some installations may require administrator rights
๐ Before Installation Checklist:¶
Before running the automated installer, you'll see a complete list of what will be installed:
๐ฆ TOOLS THAT WILL BE INSTALLED:
1. Chocolatey - Package manager for Windows
2. Git - Version control system
3. Node.js 18+ - JavaScript runtime
4. pnpm - Fast package manager (via npm)
5. Python 3.11+ - Backend runtime
6. pipx - Python application installer
7. Hatch - Python environment manager (via pipx)
โ ๏ธ Docker Desktop - Requires MANUAL installation (guidance provided)
You must confirm before any installation begins!
๐ VS Code Task Safety System¶
All VS Code development tasks now check prerequisites first:
Tasks with Prerequisite Checks:¶
Task Name | Checks For | Behavior on Failure |
---|---|---|
Start Backend | Node.js | โ Stops with helpful error message |
Start Frontend | pnpm | โ Stops with helpful error message |
Start Both Services | pnpm | โ Stops with helpful error message |
Run Backend Tests | Node.js, hatch | โ Stops with helpful error message |
Install Dependencies | pnpm, hatch | โ Stops with helpful error message |
Generate API Types | pnpm | โ Stops with helpful error message |
Error Message Examples:¶
If you try to run a task without prerequisites:
โ pnpm not found! Run "Setup Fresh Windows Machine" task first
๐ก Or run: .\scripts\install-prerequisites.ps1
Success Message Examples:¶
When prerequisites are found:
This ensures you can never accidentally run a task that will fail due to missing tools!
๐ ๏ธ Manual Installation (If Automatic Fails)¶
**โฑ๏ธ Expected time: 15-20 minutes**et ReViewPoint running in just 3 steps!**
๐ Quick Start for Fresh Windows Machines¶
โฑ๏ธ Total time: 5-10 minutes (fully automated)
Method 1: Automatic Setup (Recommended)¶
Perfect for fresh Windows machines or professor grading scenarios:
- Download the project:
- Run the automated installer:
- Start development:
That's it! The script automatically installs Git, Node.js, Python, pnpm, hatch, and provides Docker guidance.
Method 2: VS Code Tasks (If VS Code is available)¶
- Open the project in VS Code
- Press
Ctrl+Shift+P
โ Type "Tasks: Run Task" - Select "ReViewPoint: Setup Fresh Windows Machine"
- Wait for automatic installation to complete
- Run "ReViewPoint: Start Both (Backend + Frontend) - SQLite"
๐ ๏ธ What Gets Installed Automatically¶
The automated installer handles all prerequisites:
Tool | Purpose | Auto-Installed |
---|---|---|
Chocolatey | Package manager | โ |
Git | Version control | โ |
Node.js 18+ | JavaScript runtime | โ |
pnpm | Fast package manager | โ |
Python 3.11+ | Backend runtime | โ |
pipx | Python app installer | โ |
Hatch | Python environment manager | โ |
Docker Desktop | Container platform | โ ๏ธ Manual |
๐ก Docker Note: Docker Desktop requires manual installation but isn't required for basic development (SQLite mode works without it).
๏ฟฝ Manual Installation (If Automatic Fails)¶
โฑ๏ธ Expected time: 15-20 minutes
Install these tools in order. Don't skip any steps!
# | Tool | Purpose | Install Method | Verification |
---|---|---|---|---|
1 | Git | Version control | Download installer | git --version |
2 | Node.js (18+) | JavaScript runtime | Download LTS | node --version |
3 | pnpm | Fast package manager | npm install -g pnpm | pnpm --version |
4 | Python (3.11+) | Backend runtime | Download from python.org | python --version |
5 | pipx | Python app installer | python -m pip install --user pipx | pipx --version |
6 | Hatch | Python env manager | pipx install hatch | hatch --version |
7 | Docker Desktop | Container platform | Download installer | docker --version |
๐จ Critical Windows Notes:¶
- Python: โ Check "Add Python to PATH" during installation
- Docker Desktop: โ Must be running (started) before proceeding
- PowerShell: โ Run commands in PowerShell (not Command Prompt)
๐ Step 2: Verify Installation¶
Run this VS Code task to check everything:
- Open VS Code in the project folder
- Run task: "ReViewPoint: Check PostgreSQL Prerequisites"
Or manually verify with:
# Check all tools are installed
git --version
node --version
pnpm --version
python --version
hatch --version
docker --version
# Critical: Check Docker is RUNNING
docker info
โ If any command fails, go back to Step 1 and reinstall that tool.
โก Step 3: Super Quick Start (2 minutes)¶
Once prerequisites are verified, get everything running:
๐ That's it! Your ReViewPoint development environment is now running!
๐ Access Your Application:¶
- ๐ฑ Main Application: http://localhost:5173 โ Start here!
- ๐ This Documentation: http://127.0.0.1:8001/ReViewPoint/
- ๐ง Backend API: http://localhost:8000
- ๐ API Documentation: http://localhost:8000/docs
๏ฟฝ Alternative Installation Methods¶
Method 1: VS Code Tasks (Recommended for beginners)¶
Step-by-step using VS Code interface:
- Install Dependencies:
- Run task: "ReViewPoint: Install Dependencies"
-
โ Installs all project dependencies automatically
-
Choose Database & Start:
- PostgreSQL (production-like): Run "ReViewPoint: Start Both (Backend + Frontend) - PostgreSQL"
- SQLite (simpler): Run "ReViewPoint: Start Both (Backend + Frontend) - SQLite"
Method 2: Manual Commands¶
# 1. Clone and navigate
git clone https://github.com/filip-herceg/ReViewPoint.git
cd ReViewPoint
# 2. Install dependencies
pnpm install # Root dependencies
cd backend && hatch env create # Backend Python environment
cd ../frontend && pnpm install # Frontend dependencies
cd ..
# 3. Choose your setup:
# Option A: PostgreSQL (recommended)
pnpm run dev:postgres
# Option B: SQLite (simpler)
pnpm run dev
Method 3: Individual Components¶
If you want to start backend and frontend separately:
# Terminal 1: Start Backend
pnpm run postgres:start # Start PostgreSQL container
# Then run VS Code task: "ReViewPoint: Start Backend"
# Terminal 2: Start Frontend
# Run VS Code task: "ReViewPoint: Start Frontend"
๐ Available VS Code Tasks¶
Essential tasks for development:
๐ Development Tasks¶
Task Name | Purpose | When to Use |
---|---|---|
Install Dependencies | Install all project dependencies | First time setup |
Start Both - PostgreSQL | Full stack with PostgreSQL | Production-like development |
Start Both - SQLite | Full stack with SQLite | Simple development |
Start Backend | Backend only | Backend development |
Start Frontend | Frontend only | Frontend development |
Check PostgreSQL Prerequisites | Verify Docker & tools | Troubleshooting |
๐งช Testing Tasks¶
Task Name | Purpose | Test Type |
---|---|---|
Run All Backend Tests | Full backend test suite | Comprehensive testing |
Run Fast Backend Tests | Quick backend tests only | Rapid feedback |
Run Frontend Tests | Frontend unit tests | Frontend validation |
Run Frontend E2E Tests | End-to-end browser tests | Full user flows |
Run All Tests | Everything (backend + frontend) | Complete validation |
๐ง Utility Tasks¶
Task Name | Purpose | Usage |
---|---|---|
Lint Backend | Check Python code style | Code quality |
Format Backend | Auto-format Python code | Code cleanup |
Lint Frontend | Check TypeScript code style | Code quality |
Format Frontend | Auto-format TypeScript | Code cleanup |
Generate API Types | Create TypeScript types from API | After API changes |
Clean All | Remove cache/build files | Troubleshooting |
๐๏ธ Database Tasks¶
Task Name | Purpose | When to Use |
---|---|---|
Start PostgreSQL Container | Start database only | Database setup |
Stop PostgreSQL Container | Stop database | Cleanup |
Run Database Migrations | Apply schema changes | After pulling updates |
Switch to PostgreSQL | Change to PostgreSQL | Production-like setup |
Switch to SQLite | Change to SQLite | Simple setup |
Reset PostgreSQL Database | Completely reset database | Clean slate |
โ Verification Steps¶
After installation, verify everything works:
1. Check Services are Running¶
# Frontend should be accessible
curl http://localhost:5173
# Backend should respond
curl http://localhost:8000/health
# API docs should load
# Visit: http://localhost:8000/docs
2. Run Quick Tests¶
# Run a quick test to verify setup
# Use VS Code task: "ReViewPoint: Run Fast Backend Tests"
# Use VS Code task: "ReViewPoint: Run Frontend Tests"
3. Check Database Connection¶
- Backend logs should show successful database connection
- No error messages in terminal outputs
๐ Common Issues & Solutions¶
Docker Issues¶
# Problem: "docker: command not found"
# Solution: Install Docker Desktop and ensure it's running
# Problem: "Cannot connect to the Docker daemon"
# Solution: Start Docker Desktop application
# Problem: "docker info" fails
# Solution: Restart Docker Desktop, wait for it to fully start
Python/Hatch Issues¶
# Problem: "hatch: command not found"
# Solution:
pipx install hatch
# Then restart terminal
# Problem: "Python version not found"
# Solution: Reinstall Python, check "Add to PATH"
Node.js/pnpm Issues¶
# Problem: "pnpm: command not found"
# Solution:
npm install -g pnpm
# Problem: Permission errors on Windows
# Solution: Run PowerShell as Administrator
Port Conflicts¶
# Problem: Port 5173 or 8000 already in use
# Solution: Kill existing processes:
npx kill-port 5173
npx kill-port 8000
๐ฏ Next Steps¶
After successful installation:
- Explore the API: Visit http://localhost:8000/docs
- Check Documentation: Browse to the Developer Documentation
- Run Tests: Execute tests to ensure everything works
- Start Developing: Read Development Guidelines
Ready to contribute? See our Contributing Guide.
๐ Need Help?¶
If you encounter issues:
- Check Prerequisites: Run the "Check PostgreSQL Prerequisites" task
- Review Logs: Look at terminal output for error messages
- Clean & Retry: Run "Clean All" task and restart
- Ask for Help: Create an issue on GitHub with your error message
Most issues are caused by missing prerequisites or Docker not running!
### **Option 2: Simple SQLite Setup**
**Best for**: Quick testing, no Docker needed
```bash
# Simpler setup with SQLite database
pnpm run dev
Option 3: Manual Step-by-Step¶
Best for: Understanding the setup process
# 1. Install dependencies
pnpm run install
# 2. Choose your database option:
# Option A: PostgreSQL (production-like)
pnpm run postgres:start # Starts PostgreSQL container
pnpm run db:migrate # Runs database migrations
# Option B: SQLite (simple)
# Nothing needed - SQLite file created automatically
# 3. Start the development servers
pnpm run backend & # Start FastAPI backend
pnpm run frontend # Start Vite frontend
โ Verify Installation¶
Check that everything is working correctly:
- ๐ฑ Main App: http://localhost:5173 shows the ReViewPoint login page
- ๐ Documentation: http://127.0.0.1:8001/ReViewPoint/ shows this documentation site
- ๐ง Backend API: http://localhost:8000/docs shows Swagger documentation
- ๐ Health Check: http://localhost:8000/api/v1/health returns
{"status": "healthy"}
๐ ๏ธ VS Code Integration (Recommended)¶
ReViewPoint includes 24 VS Code tasks for streamlined development:
- Open ReViewPoint in VS Code
- Press
Ctrl+Shift+P
(Cmd+Shift+P on Mac) - Type "Tasks: Run Task"
- Choose from available tasks:
Task | Purpose |
---|---|
Install Dependencies | One-command setup |
Start Development (PostgreSQL) | Full stack development |
Start Development (SQLite) | Simple development |
Run All Tests | Backend + Frontend tests |
Format All Code | Code formatting |
๐ฏ Next Steps¶
Now that you're up and running:
- ๐ Read the Developer Documentation - Understand the architecture
- ๐งช Run the tests:
pnpm run test:all
- Verify everything works - ๐จ Explore the code - Check out
backend/src/
andfrontend/src/
- ๐ Make your first change - Follow the Contributing Guide
๐ Troubleshooting¶
Common Issues¶
Port conflicts:
# Check what's using the ports
lsof -i :8000 # Backend port
lsof -i :5173 # Frontend port
lsof -i :5432 # PostgreSQL port
# Kill processes if needed
kill -9 <PID>
Database connection issues:
# Reset PostgreSQL
pnpm run postgres:stop
pnpm run postgres:start
# Or switch to SQLite
pnpm run db:sqlite
Dependency issues:
Python environment issues:
Still having issues?¶
- Check the FAQ - Common problems and solutions
- Search GitHub Issues - See if others had the same problem
- Create a new issue - We're here to help!
๐ You're Ready!¶
Congratulations! You now have a fully functional ReViewPoint development environment.
What's running:
- โ Backend: FastAPI server with hot reload
- โ Frontend: React app with Vite hot reload
- โ Database: PostgreSQL or SQLite
- โ Tests: Full test suite ready to run
Start developing: Check out the Developer Documentation to learn the codebase!
# Clone the repository
git clone https://github.com/filip-herceg/ReViewPoint.git
cd ReViewPoint
# Install dependencies
pnpm run install
# Start with PostgreSQL (auto-setup)
pnpm run dev:postgres
This will:
- Check for Docker availability
- Start PostgreSQL container automatically
- Run database migrations
- Start both backend and frontend services
Manual Setup¶
If you prefer manual control over each step:
1. Install Dependencies¶
# Root dependencies
pnpm install
# Backend dependencies (Python)
cd backend
hatch env create
cd ..
# Frontend dependencies (Node.js)
cd frontend
pnpm install
cd ..
2. Database Setup¶
Option A: SQLite (Simple)¶
# Switch to SQLite mode
pnpm run db:sqlite
# Run migrations
cd backend
hatch run alembic upgrade head
cd ..
Option B: PostgreSQL (Recommended)¶
# Start PostgreSQL container
pnpm run postgres:start
# Run migrations
cd backend
hatch run alembic upgrade head
cd ..
3. Start Services¶
# Terminal 1: Start backend
cd backend
hatch run uvicorn src.main:app --reload --host 0.0.0.0 --port 8000
# Terminal 2: Start frontend
cd frontend
pnpm run dev
Environment Configuration¶
Backend Configuration¶
The backend uses environment variables from backend/config/.env
:
# Database URL (automatically set by scripts)
REVIEWPOINT_DB_URL=sqlite+aiosqlite:///./reviewpoint_dev.db
# OR for PostgreSQL:
# REVIEWPOINT_DB_URL=postgresql+asyncpg://postgres:postgres@localhost:5432/reviewpoint
# Other settings
SECRET_KEY=your-secret-key
DEBUG=true
Frontend Configuration¶
The frontend automatically connects to the backend API. No configuration needed for development.
Verification¶
Once everything is running, verify the installation:
- Backend API: Visit
http://localhost:8000/docs
for the FastAPI Swagger UI - Frontend App: Visit
http://localhost:3000
for the React application - Health Check: The frontend should successfully connect to the backend
Common Issues¶
Docker Not Found¶
If you see "Docker not found" but want to use PostgreSQL:
- Install Docker Desktop
- Ensure Docker is running
- Run
pnpm run postgres:check
to verify
Port Conflicts¶
Default ports:
- Backend:
8000
- Frontend:
3000
- PostgreSQL:
5432
If these ports are busy, modify the configuration or stop conflicting services.
Permission Issues¶
On Linux/macOS, you might need to run Docker commands with sudo
or add your user to the Docker group.
Development Workflow¶
Running Tests¶
# Backend tests
pnpm run test:backend
# Frontend tests
pnpm run test:frontend
# All tests
pnpm run test
Code Quality¶
# Lint and format backend
pnpm run lint:backend
pnpm run format:backend
# Lint and format frontend
pnpm run lint:frontend
pnpm run format:frontend
Database Migrations¶
# Create new migration
cd backend
hatch run alembic revision --autogenerate -m "Description"
# Apply migrations
hatch run alembic upgrade head
Next Steps¶
- Read the Developer Overview for architecture details
- Explore the Backend Documentation for API details
- Check out the Frontend Documentation for UI components
- Review Contributing Guidelines to start contributing
Getting Help¶
- Documentation: Browse this documentation for detailed guides
- Issues: Report problems on GitHub Issues
- Discussions: Ask questions in GitHub Discussions