Skip to main content

Explore. Code.
Master Everything.

A premium offline suite for extracting, parsing, and elegantly organizing educational content. This guide shows how to run the app on your computer.

Download Latest Release
EducativeViewer - Preview
EducativeViewer screenshot 1

Swipe left or right to view screenshots

B

Biraj Sarkar

Developer@Biraj2004

Architect of the Edu-Viewer interface and React ecosystem. Responsible for component logic, routing, UI/UX consistency, and core application rendering engines.

A

Anilabha Datta

Developer@anilabhadatta

Mastermind behind the data extraction pipeline. Developed the robust scraping engine ensuring seamless content portability into structured JSON formats.

Educative Viewer Complete Setup Guide

Detailed setup and run guide for this Next.js repository on Windows, including install, local dev, production build, and release usage.

Download Viewer
Release: loading...

Prerequisites

  • Node.js 18+
  • Python 3.10+
  • Nginx or Apache (optional)

Project Layout

  • client/ - Next.js frontend
  • server/ - Flask backend
  • proxy/ - Nginx/Apache configs

Recommended Flow

  • Start backend first
  • Then frontend
  • Then proxy on localhost

2. Folder Overview

  • client/: Next.js frontend app
  • server/: Flask backend service
  • proxy/: Nginx/Apache sample configs

Use the commands below from the correct folder, or startup will fail.

3. Backend Setup (Flask)

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
  • AUTH_SQLITE_DB_PATH is for user/auth data. The SQLite file is created if it does not exist.
  • COURSE_SQLITE_DB_PATH should point to your course database file.
  • Leave Oracle values in .env untouched if you are using SQLite.
python app.py

Start backend and Keep this backend terminal open while running frontend/proxy.

4. Frontend Setup (Next.js)

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.

5. Local Proxy Setup (Optional, Recommended)

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 (Windows)

  • Use proxy/nginx-windows.conf
  • Keep only one active localhost:80 server block
  • Set root to
  • C:/inetpub/wwwroot/educativeviewer
  • Ensure upstreams map to Flask:5000 and Next:3000
  • Create
  • C:/inetpub/wwwroot/educativeviewer/api/images
nginx -t
nginx -s reload

Apache (Windows)

  • Use proxy/apache-windows.conf
  • Keep only one active localhost:80 vhost
  • Alias to C:/inetpub/wwwroot/educativeviewer/api/
  • Double-check alias path exists on disk
  • Store images in api/images
httpd -t
httpd -k restart

6. Start Order (Quick)

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.

7. Verify Image Proxy

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.

8. Troubleshooting

Frontend starts, API fails

Ensure backend runs on port 5000 and client .env.local has

NEXT_PUBLIC_BACKEND_API_BASE=http://localhost/

Images return 404 through proxy

Confirm file exists under

C:/inetpub/wwwroot/educativeviewer/api/...

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.

This setup guide is sourced from the repository README. Once backend, frontend, and proxy are running, use http://localhost as your main app URL.