diff --git a/.gitignore b/.gitignore index 7c19414..6f2fd6f 100644 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,9 @@ npm-debug.log* yarn-debug.log* yarn-error.log* .pnpm-debug.log* +*.log +*_logs.txt +backend/admin_uploads/ # env files (can opt-in for committing if needed) .env* diff --git a/CLAUDE.md b/CLAUDE.md deleted file mode 100644 index 43c994c..0000000 --- a/CLAUDE.md +++ /dev/null @@ -1 +0,0 @@ -@AGENTS.md diff --git a/PAGEWISE_API_DOCUMENTATION.md b/PAGEWISE_API_DOCUMENTATION.md index 0c63857..473be03 100644 --- a/PAGEWISE_API_DOCUMENTATION.md +++ b/PAGEWISE_API_DOCUMENTATION.md @@ -696,28 +696,34 @@ graph LR ## 5. Codebase Cleanup Audit & Phase 2 Roadmap ### 5.1 Cleaned & Removed Legacy Files -In accordance with production standards, the following 10 dead/legacy files and temporary development artifacts have been hard-deleted: -- `backend/fix.py`: One-time script for manual LaTeX question corrections. -- `backend/fix_from_source.py`: One-time PDF extraction script. -- `backend/fix_ions.py`: One-time chemical formula fixer. -- `backend/seed_dpps.py`: Legacy DPS script using PyMuPDF and OpenAI. -- `backend/seed_dpps_mock.py`: Obsolete mock DPS generator. -- `backend/seed_dpps_real.py`: Obsolete duplicate DPS script. -- `backend/seed_from_dpps.py`: Redundant seeder variant. -- `backend/pragativeer-prd.pdf`: Product Requirements Document binary removed from backend. +In accordance with production standards, all dead/legacy files, log dumps, and temporary development artifacts have been hard-deleted: +- `backend/fix.py`, `backend/fix_from_source.py`, `backend/fix_ions.py`: One-time scripts for manual question text extraction and repair. +- `backend/seed_dpps.py`, `backend/seed_dpps_mock.py`, `backend/seed_dpps_real.py`, `backend/seed_from_dpps.py`: Legacy seed scripts superseded by `seed.py`. +- `backend/pragativeer-prd.pdf`, `backend/test.pdf`, `backend/test2.pdf`: Temporary test binaries. - `backend/pragativeer.db`: Abandoned SQLite file (PragatiVeer exclusively uses PostgreSQL). -- `backend/test.pdf` & `backend/test2.pdf`: Temporary test PDFs. +- `backend/pdfs_to_parse/`: 15.3 MB of raw PDFs removed (already extracted into `admin_uploads/`). +- `backend/pdf_parser.py`: Unused stub file removed to prevent dead code clutter. +- `backend.log`, `backend_logs.txt`, `full_logs.txt`: Obsolete runtime logs. +- `alter.sql`, `userlist.txt`, `CLAUDE.md`: Temporary scratch and SQL debug files. +- `create_policies.py`, `fix_icons.py`, `generate_jee_json.py`: One-time generation/migration scripts. -### 5.2 Decoupled Dependencies (`requirements.txt`) +### 5.2 Preserved Academic & Testing JSON Assets +As required for manual verification, test runs, and format specifications, the following question datasets remain actively preserved in the codebase: +- `jee_advanced_full_90q.json`: Comprehensive 90-question JEE Advanced sample dataset for exam testing. +- `neet_180_questions.json`: Comprehensive 180-question NEET UG sample dataset for exam testing. +- `admin_json_samples.md`: Official JSON schema specifications and samples for Admin question uploader. +- `neet_sample_questions.md`: NEET sample question reference and validation format. +- `admin_uploads/`: 4 Daily Practice Sheets (Biology, Chemistry, Mathematics, Physics Chapter 4 JSONs) seeded directly into the CBT engine. + +### 5.3 Decoupled Dependencies (`requirements.txt`) The following heavy external packages were removed from `backend/requirements.txt`: - `openai==1.14.0`: Decoupled to eliminate reliance on external LLM keys during initial rollout. - `PyMuPDF==1.23.26`: Decoupled to prevent native C-library compile overhead in production. -### 5.3 Stubbed Modules for Phase 2 AI Integration +### 5.4 Production-Safe AI Modules - `backend/llm.py`: Cleanly stubbed with an async generator returning a friendly coming-soon notice. -- `backend/pdf_parser.py`: Cleanly stubbed with an empty list return. -- `backend/worker.py`: Cleaned to retain exclusively the active 5:00 AM IST Celery Beat daily study plan scheduler. -- `POST /api/admin/tests/upload`: Returns a structured message directing administrators to use `/api/admin/tests/create_manual` until Phase 2 is provisioned. +- `backend/worker.py`: Retains exclusively the active 5:00 AM IST Celery Beat daily study plan scheduler. +- `POST /api/admin/tests/upload`: Saves PDF to MinIO and guides administrators to use `/api/admin/tests/create_manual` until Phase 2 is provisioned. --- diff --git a/alter.sql b/alter.sql deleted file mode 100644 index 0f47671..0000000 --- a/alter.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE "user" ADD COLUMN active_session_token VARCHAR; diff --git a/backend.log b/backend.log deleted file mode 100644 index ef71ddb..0000000 Binary files a/backend.log and /dev/null differ diff --git a/backend/pdf_parser.py b/backend/pdf_parser.py deleted file mode 100644 index f8e36d2..0000000 --- a/backend/pdf_parser.py +++ /dev/null @@ -1,21 +0,0 @@ -""" -pdf_parser.py — PDF-to-Question AI Parser -STATUS: DEFERRED — Phase 2 (AI Coach LLM integration) - -This module will use PyMuPDF to extract text from uploaded PDFs and pass it -to an LLM to structure questions into the database JSON schema. - -When ready to enable: -1. Add `PyMuPDF==1.23.26` and `openai==1.14.0` back to requirements.txt -2. Set LLM_BASE_URL, LLM_MODEL_NAME, OPENAI_API_KEY in backend/.env -3. Replace this stub with the full implementation. -""" -from typing import List, Dict, Any - - -async def parse_pdf_to_questions(pdf_bytes: bytes, exam_pattern: str) -> List[Dict[str, Any]]: - """ - Stub: returns empty list. Real implementation uses PyMuPDF + LLM JSON extraction. - Replace in Phase 2 once LLM infrastructure is provisioned. - """ - return [] diff --git a/backend/pdfs_to_parse/dps-bio-ch4-20260707.pdf b/backend/pdfs_to_parse/dps-bio-ch4-20260707.pdf deleted file mode 100644 index 8410201..0000000 Binary files a/backend/pdfs_to_parse/dps-bio-ch4-20260707.pdf and /dev/null differ diff --git a/backend/pdfs_to_parse/dps-che-ch4-20260707.pdf b/backend/pdfs_to_parse/dps-che-ch4-20260707.pdf deleted file mode 100644 index 896d52f..0000000 Binary files a/backend/pdfs_to_parse/dps-che-ch4-20260707.pdf and /dev/null differ diff --git a/backend/pdfs_to_parse/dps-mth-ch4-20260707.pdf b/backend/pdfs_to_parse/dps-mth-ch4-20260707.pdf deleted file mode 100644 index a9bc02f..0000000 Binary files a/backend/pdfs_to_parse/dps-mth-ch4-20260707.pdf and /dev/null differ diff --git a/backend/pdfs_to_parse/dps-phy-ch4-20260707.pdf b/backend/pdfs_to_parse/dps-phy-ch4-20260707.pdf deleted file mode 100644 index ce44ad4..0000000 Binary files a/backend/pdfs_to_parse/dps-phy-ch4-20260707.pdf and /dev/null differ diff --git a/backend/worker.py b/backend/worker.py index bd99e0f..b02b155 100644 --- a/backend/worker.py +++ b/backend/worker.py @@ -4,7 +4,7 @@ Active Tasks: - generate_daily_study_plans: Runs daily at 5:00 AM IST via Celery Beat Deferred (Phase 2 — AI LLM): - - process_pdf_test: PDF → LLM → Questions pipeline (stubbed in pdf_parser.py) + - process_pdf_test: Automated PDF → LLM → Questions pipeline """ import os from datetime import datetime diff --git a/backend_logs.txt b/backend_logs.txt deleted file mode 100644 index c04e89a..0000000 Binary files a/backend_logs.txt and /dev/null differ diff --git a/create_policies.py b/create_policies.py deleted file mode 100644 index ef8e22d..0000000 --- a/create_policies.py +++ /dev/null @@ -1,555 +0,0 @@ -import os - -pages_dir = r"c:\Users\naman\OneDrive\Desktop\pragativeer-v2\src\app" - -pages = { - "disclaimer": { - "title": "PragatiVeer Disclaimer", - "content": """ -
Last Updated: 27 July 2026
-Version: 1.0
-Document Ref: PV-LEG-DI-001
-Applicable To: PragatiVeer website (pragativeer.com) and associated services.
The content on PragatiVeer — including Daily Practice Sheets (DPS), mock tests, study materials, articles, and AI-generated insights — is provided for educational and practice purposes only. It does not constitute professional advice, guaranteed exam content, or a complete curriculum.
- -PragatiVeer is a practice and preparation tool. We do not guarantee:
-Exam outcomes depend on numerous factors beyond our control, including your preparation level, exam-day conditions, and other variables.
- -We strive to ensure that all content is accurate, up-to-date, and aligned with relevant exam syllabi. However, we make no representations or warranties regarding the completeness, accuracy, reliability, or timeliness of any content. Exam patterns, syllabi, and marking schemes may change without notice.
- -Some features of PragatiVeer — including personalised DPS generation and weak-area analysis — are powered by artificial intelligence (AI). While we continuously improve our AI models, AI generated content may contain errors, inaccuracies, or omissions. You are encouraged to verify critical information from official sources.
- -Use of PragatiVeer does not create a student-teacher, tutor-student, or any professional advisory relationship between you and Gyannetra Pvt Ltd or its personnel.
- -The Platform may contain links to third-party websites, resources, or services. We do not endorse, control, or assume responsibility for the content, privacy practices, or availability of any third-party sites.
- -To the maximum extent permitted by law, Gyannetra Pvt Ltd and its directors, employees, and agents shall not be liable for any loss, damage, or expense arising from your use of or reliance on the Platform or its content, including but not limited to:
-The Platform and all content are provided "as is" and "as available" without warranty of any kind, whether express or implied.
- -If you have any questions about this Disclaimer, please contact us at contact@pragativeer.com.
-Gyannetra Pvt Ltd
-CIN: U72900PN2015PTC156021
-OFF NO 201, 2ND FLOOR, SAI EMPIRE, S NO 183/1/2, Baner Gaon, Haveli, Pune - 411045, Maharashtra, India
-pragativeer.com
-Last Updated: 27 July 2026
-Version: 3.0
-Document Ref: PV-LEG-TC-001
-Applicable To: PragatiVeer website (pragativeer.com) and associated services.
PragatiVeer (“we”, “our”, “us”) is an exam preparation platform operated by Gyannetra Pvt Ltd (CIN: U72900PN2015PTC156021), registered office at OFF NO 201, 2ND FLOOR, SAI EMPIRE, S NO 183/1/2, Baner Gaon, Haveli, Pune - 411045, Maharashtra, India.
-By accessing or using PragatiVeer, you agree to these Terms. If you do not agree, do not use the Platform.
- -| Plan | -Price (incl. GST) | -Duration | -
|---|---|---|
| Pro | ₹3,499 | Per annum |
| AI Coach | ₹11,999 | Per annum |
Subscriptions auto-renew at the end of each billing period unless cancelled at least 24 hours before renewal. You may cancel auto-renewal from your account settings or by emailing contact@pragativeer.com.
- -You may request a full refund within 7 days of purchase if you have not accessed more than 5 DPS sheets. No refunds after 7 days. To request a refund, email contact@pragativeer.com with subject “Refund Request”.
- -You agree to:
-Violation may result in account suspension or termination.
- -All Content on PragatiVeer — questions, DPS, materials, logos, software — is owned by Gyannetra Pvt Ltd. You may not reproduce, distribute, or modify it without our written consent.
-You retain ownership of your responses and data. By submitting content, you grant us a license to store, process, and use anonymised data for service improvement.
- -Our data practices are governed by our Privacy Policy and the Digital Personal Data Protection Act, 2023. We do not sell your data.
- -PragatiVeer is a practice tool. We do not guarantee any specific exam score, rank, or admission.
- -The Platform is provided “as is”. Our total liability shall not exceed the fees paid by you in the 12 months preceding a claim. We are not liable for indirect or consequential damages.
- -You may delete your account anytime via settings or by emailing contact@pragativeer.com. We may terminate your account for breach of these Terms. Fees paid are non-refundable upon termination.
- -We may update these Terms with 7 days’ notice via email. Continued use after changes take effect constitutes acceptance.
- -| Detail | -Information | -
|---|---|
| Name | Himani Kachhawaha |
| grievance@pragativeer.com | |
| Phone | +91 9079337961 |
| Address | OFF NO 201, 2ND FLOOR, SAI EMPIRE, S NO 183/1/2, Baner Gaon, Haveli, Pune - 411045 |
| Response Time | Acknowledged within 24 hours; resolved within 30 days |
These Terms are governed by the laws of India. Disputes shall be resolved through binding arbitration in Pune, Maharashtra. The courts in Pune have exclusive jurisdiction.
- -Gyannetra Pvt Ltd
-CIN: U72900PN2015PTC156021
-OFF NO 201, 2ND FLOOR, SAI EMPIRE, S NO 183/1/2, Baner Gaon, Haveli, Pune - 411045, Maharashtra, India
-pragativeer.com
-Last Updated: 27 July 2026
-Version: 3.0
-Document Ref: PV-LEG-PP-001
-Applicable To: PragatiVeer website (pragativeer.com) and associated services.
PragatiVeer (“we”, “our”, “us”) is an exam preparation platform operated by Gyannetra Pvt Ltd (CIN: U72900PN2015PTC156021), registered office at OFF NO 201, 2ND FLOOR, SAI EMPIRE, S NO 183/1/2, Baner Gaon, Haveli, Pune - 411045, Maharashtra, India.
-This Privacy Policy explains how we collect, use, store, share, and protect your personal data when you use PragatiVeer. It covers your rights under the Digital Personal Data Protection Act, 2023 (DPDP Act) of India.
-By using PragatiVeer, you acknowledge that you have read and understood this policy.
- -| Category | -Examples | -Purpose | -
|---|---|---|
| Account Information | Name, email address, phone number | Account creation, service delivery, communication |
| Academic Information | Class/grade, target exam, school name, city | Personalising content, weak-area analysis |
| Payment Information | Transaction ID, billing name (we do not store full card or UPI details) | Subscription billing, invoicing |
| Communications | Messages sent via email or contact forms | Support, feedback, grievance handling |
| Category | -Examples | -Purpose | -
|---|---|---|
| Usage Data | DPS attempts, scores, time spent, weak-area progression | Personalising the learning experience |
| Technical Data | IP address, browser type, device type, operating system | Service optimisation, fraud prevention, analytics |
We may receive transaction confirmation data from payment gateways but not full financial instrument details.
- -We use your personal data only for:
-We do NOT:
-PragatiVeer is designed for students preparing for competitive exams, including those under 18 years of age.
-By using PragatiVeer, users under 18 years of age represent and warrant that they have obtained the necessary consent from their parent or lawful guardian to use the Platform and share their personal data. PragatiVeer relies on this representation and shall not be liable for verifying parental consent.
-We encourage parents and guardians to monitor their child’s online activities and review this Privacy Policy.
- -We share your data only with trusted service providers bound by data protection agreements:
-| Provider | -Purpose | -Safeguards | -
|---|---|---|
| Payment Gateway | Payment processing | PCI-DSS compliant; no full payment details stored |
| AI Inference Providers | Weak-area analysis, DPS generation | Data anonymised before processing |
| Self-hosted Infrastructure | Storage, backups, disaster recovery | No third-party access |
We do not share your data with advertising networks, data brokers, or for monetisation.
- -| Data Category | -Retention Period | -
|---|---|
| Account Information | Account duration + 12 months |
| Academic Performance Data | Account duration + 24 months |
| Payment Records | 7 years (as required by tax laws) |
| Communication Records | 12 months |
You may request account deletion by emailing contact@pragativeer.com with subject “Account Deletion Request”. We will delete your data within 30 days.
- -We implement:
-In the event of a data breach, we will notify the Data Protection Board of India and affected users within 72 hours.
- -| Right | -How to Exercise | -
|---|---|
| Access your data | Email contact@pragativeer.com |
| Correct your data | Update in account settings or email us |
| Delete your data | Email with subject “Account Deletion Request” |
| Withdraw consent | Email contact@pragativeer.com |
| Lodge a grievance | Contact Grievance Officer (Section 9) |
| Nominate a representative | Email with subject “Nomination Request” |
We respond to all requests within 30 days.
- -| Detail | -Information | -
|---|---|
| Name | Himani Kachhawaha |
| grievance@pragativeer.com | |
| Phone | +91 9079337961 |
| Address | OFF NO 201, 2ND FLOOR, SAI EMPIRE, S NO 183/1/2, Baner Gaon, Haveli, Pune - 411045 |
| Response Time | Acknowledged within 24 hours; resolved within 30 days |
Our website uses essential cookies for functionality and anonymous analytics cookies. We do not use advertising cookies, cross-site tracking, or fingerprinting scripts.
- -We will notify you of material changes via email with at least 7 days’ notice.
- -Email: contact@pragativeer.com
-Address: OFF NO 201, 2ND FLOOR, SAI EMPIRE, S NO 183/1/2, Baner Gaon, Haveli, Pune - 411045, Maharashtra, India
-Phone: +91 9079337961
This Policy is governed by the laws of India. Disputes are subject to the exclusive jurisdiction of courts in Pune, Maharashtra.
- -Gyannetra Pvt Ltd
-CIN: U72900PN2015PTC156021
-OFF NO 201, 2ND FLOOR, SAI EMPIRE, S NO 183/1/2, Baner Gaon, Haveli, Pune - 411045, Maharashtra, India
-pragativeer.com
-Last Updated: 27 July 2026
-Version: 1.0
-Document Ref: PV-LEG-RP-001
-Applicable To: PragatiVeer website (pragativeer.com) and associated services.
This Refund Policy governs all paid subscriptions on PragatiVeer, operated by Gyannetra Pvt Ltd (CIN: U72900PN2015PTC156021).
-By purchasing a subscription, you agree to the terms of this policy.
- -| Plan | -Price (incl. GST) | -Duration | -
|---|---|---|
| Pro | ₹3,499 | Per annum |
| AI Coach | ₹11,999 | Per annum |
You may request a full refund within 7 days of purchase provided that you have not accessed more than 5 DPS sheets during that period.
-Refunds will not be issued if:
-To request a refund, email contact@pragativeer.com with:
-We will process your request within 7-10 business days and the refund will be credited to the original payment method.
- -The following are non-refundable:
-You may cancel your subscription at any time. However, cancellation does not entitle you to a refund unless it falls within the refund window described in Section 3. Upon cancellation, your access will continue until the end of the current billing period.
- -For any questions regarding this Refund Policy, contact us at contact@pragativeer.com or reach out to our Grievance Officer:
-| Detail | -Information | -
|---|---|
| Grievance Officer | Himani Kachhawaha |
| grievance@pragativeer.com | |
| Phone | +91 9079337961 |
Gyannetra Pvt Ltd
-CIN: U72900PN2015PTC156021
-OFF NO 201, 2ND FLOOR, SAI EMPIRE, S NO 183/1/2, Baner Gaon, Haveli, Pune - 411045, Maharashtra, India
-pragativeer.com
-Last Updated: 27 July 2026
-Version: 1.0
-Document Ref: PV-LEG-CP-001
-Applicable To: PragatiVeer website (pragativeer.com) and associated services.
This Cancellation Policy governs cancellation of paid subscriptions on PragatiVeer, operated by Gyannetra Pvt Ltd (CIN: U72900PN2015PTC156021).
-By purchasing a subscription, you agree to the terms of this policy.
- -You may cancel your subscription at any time by:
-Upon cancellation:
-To avoid being charged for the next billing cycle, cancellation must be requested at least 24 hours before the renewal date.
- -All subscriptions auto-renew at the end of each billing period unless cancelled at least 24 hours before renewal. You authorise us to charge the applicable subscription fee to your chosen payment method at each renewal.
-You will receive a reminder before renewal. If you do not wish to renew, please cancel before the renewal date.
- -We reserve the right to cancel or suspend your subscription immediately if:
-In such cases, fees paid are non-refundable.
- -Cancelling your subscription does not delete your account. To delete your account and all associated data, please follow the process outlined in our Privacy Policy.
- -For any questions regarding this Cancellation Policy, contact us at contact@pragativeer.com or reach out to our Grievance Officer:
-| Detail | -Information | -
|---|---|
| Grievance Officer | Himani Kachhawaha |
| grievance@pragativeer.com | |
| Phone | +91 9079337961 |
Gyannetra Pvt Ltd
-CIN: U72900PN2015PTC156021
-OFF NO 201, 2ND FLOOR, SAI EMPIRE, S NO 183/1/2, Baner Gaon, Haveli, Pune - 411045, Maharashtra, India
-pragativeer.com
-