Prerequisites
- Node.js 18+
- Python 3.10+
- Nginx or Apache (optional)
A premium offline suite for extracting, parsing, and elegantly organizing educational content. This guide shows how to run the app on your computer.

Swipe left or right to view screenshots
Architect of the Edu-Viewer interface and React ecosystem. Responsible for component logic, routing, UI/UX consistency, and core application rendering engines.
Mastermind behind the data extraction pipeline. Developed the robust scraping engine ensuring seamless content portability into structured JSON formats.
Detailed setup and run guide for this Next.js repository on Windows, including install, local dev, production build, and release usage.
Use the commands below from the correct folder, or startup will fail.
Open PowerShell in the project root and run:
cd server # If you do not have a virtual environment yet: python -m venv env # Activate virtual environment: .envScriptsActivate.ps1 # Install backend dependencies: pip install -r requirements.txt # Create .env from sample: Copy-Item .env.example .env
Minimum values for server/.env
FLASK_PORT=5000 FLASK_DEBUG=1 AUTH_DB_ENGINE=sqlite AUTH_SQLITE_DB_PATH=/path/to/your/auth.sqlite3 COURSE_DB_ENGINE=sqlite COURSE_SQLITE_DB_PATH=/path/to/your/course_db.sqlite3 JWT_SECRET=change-this-for-local-dev INVITE_CODES=localcode
python app.py
Start backend and Keep this backend terminal open while running frontend/proxy.
cd client Copy-Item .env.local.example .env.local
NEXT_PUBLIC_BACKEND_API_BASE=http://localhost/ NEXT_PUBLIC_STATIC_FILES_BASE=http://localhost/ VERCEL_ENV=development # Only add values here that are safe to expose in browser bundles. # Never put private keys, tokens, or secrets in NEXT_PUBLIC_* vars. # If backend logs show an RSA public key: # NEXT_PUBLIC_RSA_PUBLIC_KEY=your-public-key-here
node deploy.js
In the deploy menu choose option 2 (download release zip) or 4 (use existing local .next.zip). Frontend should come up at http://localhost:3000.
Use proxy mode when you want a single localhost URL that routes API to Flask, serves static images from local disk, and forwards frontend traffic to Next.js.
nginx -t nginx -s reload
httpd -t httpd -k restart
1) Start backend: python app.py 2) Start frontend: node deploy.js (in client) 3) Start or reload proxy 4) Open http://localhost
For full routing validation, use proxy URL http://localhost instead of direct frontend URL.
C:/inetpub/wwwroot/educativeviewer/api/images/logo.png
Verify static image routing with:
http://localhost/api/images/logo.png
If this URL opens the image directly, proxy static mapping is configured correctly.
Frontend starts, API fails
Ensure backend runs on port 5000 and client .env.local has
Images return 404 through proxy
Confirm file exists under
and proxy paths match exactly.
Frontend command confusion
For this workflow use node deploy.js from client and choose menu option 2 or 4.
Port already in use
Update conflicting ports in proxy config and matching environment variables.