A desktop application for creating and taking JEE (Joint Entrance Examination) mock tests. Built with PyQt6 and SQLite.
- Mock Test Library – Create, import, and manage mock tests
- Question Management – Add single-choice, multiple-choice, and numerical questions
- Timed Tests – Take tests with configurable duration and automatic timer
- Detailed Analysis – View section-wise breakdown, accuracy, and score after each attempt
- Import/Export – Share mocks using the
.jmockfile format - Attempt History – Track all past attempts with scores and timestamps
- Python 3.13 or higher
- PyQt6
# Clone the repository
git clone <repository-url>
cd Mocknest
# Install dependencies
pip install pyqt6
# Or using the project configuration
pip install -e .Windows:
run.batLinux/macOS:
./run.shDirect:
python main.py- Click "Create Mock" in the Library page
- Enter title, duration, marking scheme, and sections
- Add questions to the mock (single, multiple, or numerical type)
- Save and the mock appears in your library
- Select a mock from the Library or Dashboard page
- Click "Take Test" to start
- Answer questions using the question palette
- Submit when done or when time runs out
- Export: Click the export icon next to any mock to save as
.jmockfile - Import: Click "Import Mock" and select a
.jmockfile
Mocknest/
├── main.py # Application entry point
├── db.py # SQLite database operations
├── models.py # Data classes (Question, Mock, Attempt)
├── mock_format.py # Import/export (.jmock files)
├── scoring.py # Test scoring and analysis logic
├── styles.py # Application styling
├── components/ # Reusable UI components
│ ├── sidebar.py # Navigation sidebar
│ ├── question_card.py
│ └── question_palette.py
├── pages/ # Application pages
│ ├── dashboard.py
│ ├── library.py
│ ├── creator.py # Mock creation form
│ ├── add_questions.py
│ ├── take_test.py
│ ├── analysis.py # Result analysis
│ └── history.py
└── data/
└── seed.py # Sample data initialization
SQLite database stored at ~/.jee_mock_app/app.db
Tables:
mocks– Test metadata (title, duration, marking scheme, sections)questions– Question data linked to mocksattempts– Test attempt records with answers and scores
- Single Choice: +4 for correct, -1 for incorrect
- Multiple Choice: +4 if all correct, 0 if partial correct, -1 if wrong
- Numerical: +4 if within ±0.01 tolerance, 0 otherwise
Default marking scheme is configurable per mock.
# Using PyInstaller
pyinstaller JEE\ Mock\ App.spec
# Output location
dist/JEE Mock App.exe[Add your license information here]