Based on 4 student review(s) and 4 tip(s) for this examiner (grouped from similar proctor IDs).
Traits
ChillTheory-focusedProject-focused
Attitude
Generally calm and student-friendly
Questioning style
Often probes theory concepts. Expects you to know and possibly modify your project code
Preparation tips
• proctor was Adarsh Madre sir himself, asked some basic questions, that test our understanding of our Code, ability to Code and basic theory Qs.
• know you every part of the code, I mean every thing from “.” to “-“ every thing and work flow.
• He seems very chill, he explains calmly and gives you sufficient time to answer, if you dont know just say what you know and say you dont know the rest, he'll move on.
overall viva time was around 45 minutes for me.
• One of the best proctor, my viva was around 30 min.
Just know the logic of what you've used in the project.
All The Best 👍
Tips for this examiner: Moot ke aana viva me, 30 minutes lag gye total
Student reviews
AKMMAD1
One of the best proctor, my viva was around 30 min. Just know the logic of what you've used in the project. All The Best 👍
Questions remembered
LEVEL 2 Viva - Placement Portal
Show ID Card
Two options : download from portal or do the checksum
Brief Overview of the project (what files are there, how they are connected to each other)
Briefly explain all the models
Explain the logic of creating a drive (Show through the code, both frontend and backend)
What is Secret key and why it is used ?
What is backref ?
Difference between "id" and "name" ?
Difference between "PUT" and "POST" method ?
Add a field Age(dropdown) with two option Less than 30 and Greater than 30, in the Create Drive page. Then retrieve the value and print it on the terminal.
Difference between Authorization and Authentication
Difference between Inline and Block element
Difference between Inline and Internal CSS
Sheet responseMAD1
He seems very chill, he explains calmly and gives you sufficient time to answer, if you dont know just say what you know and say you dont know the rest, he'll move on. overall viva time was around 45 minutes for me.
Questions remembered
LEVEL 2 VIVA - PLACEMENT PORTAL
Show ID Card
Download project straight from vivaflow or run checksum
Give full demo
Explain project structure and models
Explain login route, stopped me at a random point and pointed at the code and ask me what that line means and what does it do
Explain company create drive route, frontend and backend
In company drive, add a new field called 'Age' as dropdown just in frontend and it should show only options >30 and <30. Then change it to normal field with any input, once you run the app, the age should show in terminal (no need to show in backend and store in database and all)
what is the difference between block and inline elements?
difference between inline and internal css
difference between PUT and POST, can they be used interchangeably 11)what is an indempotent HTTP method.
how is the frontend html template connected to the backend
Sheet responseMAD1
know you every part of the code, I mean every thing from “.” to “-“ every thing and work flow.
Questions remembered
* he don’t want me to show the demo, just download the project from submission and open the vscode
* he asked me to explain the architecture, models and it’s relationship and whole work flow of project including app.py, .env or all python file which I created.
* then point out any part of code and asked what does it do.
* he asked me if patient book a appointment what's the whole work flow of it.
* he ask me write a route for a page which take your first and last name as input and return the whole name as output
* then he give me a list ['head', 'nails', 'toe’] and asked to write a jinja code for returning words which is greater then 3
* what is argument phrasing
* what is api phrasing
* write syntax of git branching
* write syntax of git if you no longer want to track or end track of code
* 1, 2 more theory questions
Sheet responseMAD1
proctor was Adarsh Madre sir himself, asked some basic questions, that test our understanding of our Code, ability to Code and basic theory Qs.
Questions remembered
Level 2 viva Sat 9-10pm... 40 minutes Qs testing the understanding of your code:
Tell about your project Structure
Show me your models and explain
explain the login and how it works in your code
explain about adding the lots in your code Coding Qs:
given [<Spot 1>,<Spot 2>,<Spot 3>] and a flag isOccupied, write in Jinja how to populate the spots in order
given URL http://127.0.0.1:5000?name=xyz&course=appdev, write a flask endpoint that returns JSON data Theory Qs:
If i remove method="post" in the HTML form, will it have any impact?
If you remove url_for in redirect, what would you change to get same results?
what is name and id in html?
difference between Inline elements and Block elements?
What is authentication vs authorization?
What are markers in Pytest? and difference between markers and keywords?
gave me a route "trek/<staffname>" and told me to write a route for this and that route fn should be able to extract staff name and return the trek assigned to that staff.
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
2
then he told me to explain my profit
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
3
then explain how when a admin create new trek how everything flow from frontend to backend to db
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
4
then he told me to open some specific files like vue.app, models app.py config files and told me to explain some parts of it like why i am using secret key , why we used this specific function what does watcher do and all
Times asked1
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
5
what is api composition
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
6
what does script setup do
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
7
what is watchers , computed. property
Times asked1
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
8
what does reactive mean
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
9
ref
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
10
how axios handles data
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
11
what is v bind
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
12
why i have used router here
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
13
what changes is the watcher code listening to here
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
14
he also asked me to explain that celery config code
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
15
and many more questions which i don't remember which he asked from my code
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
Advice: for theory questions prepare from sheet he doesn't check for demo . he said u already passed l1 that means u have an idea about how your application works and all so.
he is nice and chill won't ask hard question just know your code and even for coding questions prepare from sheet only
* Completed initial project verification (no demo was required).
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
3
* Explained the user login and registration workflow.
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
4
* Justified using Flask secret key instead of JWT tokens for session management.
Times asked1
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
5
* Demonstrated how an admin creates a new trek entry.
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
6
* Explained the complete database structure and schema in models.py.
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
7
* Detailed the configuration, setup, and working mechanism of Celery and Redis for asynchronous tasks.
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
8
Coding Tasks
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
9
* Backend: Implemented a backend route allowing an admin to fetch all treks assigned to a specific staff member.
Times asked1
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
10
* Frontend: Built the corresponding frontend view to connect with and render data from the new backend route.
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
11
Theory Questions
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
12
* Architecture and implementation of vue-router.
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
13
* Purpose and working mechanism of Axios for HTTP requests.
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
Advice: Irrespective of whether you've used a technology/framework or not, make sure you're aware of all the key frameworks and technologies taught in AppDev theory courses (both 1 and 2)
Write template + script: two text inputs (first name, last name), button, on click concatenate and display (all in a .js file)
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
3
$route vs $router
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
4
Asked to show exactly where the API is called and how the admin dashboard renders that data
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
Advice: Explain your code in excruciating detail up front (the functionalities why you used one library over another etc) — the more thoroughly you narrate a file unprompted, the fewer follow-up questions he digs for, since he's mainly testing whether you can explain why something exists, not whether he can catch you out. Learn from other students' form responses beforehand — the question patterns repeat closely across different students with this proctor (same coding-task types, same "versus" pairs). Know the difference between backref and back_populates specifically, not just relationships in general. Be ready to trace a feature end-to-end — from the frontend button/API call through to where the data actually renders on screen — not just the backend route in isolation.
There was no project demo in my case. The examiner directly started asking questions from my codebase. He went through the project line by line and asked why I had written certain things, what they do, and whether I had actually implemented those features.
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
3
Types of questions I was asked
Times asked1
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
4
Some of the questions I remember are:
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
5
Explain router.js.
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
6
Write a database query to fetch all treks belonging to a particular manager.
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
7
What are computed properties and watchers in Vue?
Times asked1
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
8
Why did you use :class (colon before class)? What is its purpose?
Times asked1
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
9
There were many more questions, but these are the ones I remember.
Times asked1
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
10
My experience
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
11
Some questions I answered well, some only partially, and a few I couldn't answer. I didn't try to bluff or make things up. Whenever I genuinely didn't know something, I told him honestly.
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
12
At one point, he gave feedback saying that my answers were okay-ish, but I should understand my own code much better. He specifically said that using AI is not an excuse for not being able to explain or write the code yourself. If you've used AI to build something, you should still understand every part of it.
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
13
That honestly made me feel much better.
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
14
Biggest lesson
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
15
Know every single line of your own code.
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
16
If you've imported a library:
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
17
Why did you import it?
Times asked1
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
18
What problem does it solve?
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
19
Could you have done it another way?
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
20
If you've used a function:
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
21
What does it return?
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
22
Why is it needed?
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
23
What happens if you remove it?
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
24
If you've copied something from documentation or AI:
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
25
Read it.
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
26
Be able to write it again without looking.
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
27
The examiner doesn't care whether the project works. He wants to know whether you understand what you've written.
Times asked2
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
Advice: My advice for everyone
Go through your project line by line.
Understand every import, configuration, and dependency.
Be able to write important snippets (like router configuration or common database queries) without looking.
Learn the concepts behind whatever you've used (JWT, Vue Router, computed, watch, Axios, Pinia, SQLAlchemy, etc.).
If you haven't implemented a feature, be honest. Don't try to fake it.
Revise common Vue concepts like props, emits, computed, watch, routing, conditional rendering, lifecycle hooks, and API calls.
Revise backend concepts like JWT authentication, database relationships, SQLAlchemy queries, and why each package is used.
Final takeaway
The viva is less about whether your project runs and more about whether you truly understand your project. If you know your own code well, you'll do much better than someone who simply copied everything and hoped it wouldn't be asked.
That's all from my side. I hope this helps. Best of luck to everyone appearing for the viva—you've got this!
Suggested flow1) Concept kya hai?
2) Mere code mein kahan?
3) Example / demo
4) Edge case
Example
# related file: models.py / routes / template
# formula: request → check/auth → DB → render/redirect
Viva tipExact line yaad nahi to honestly related part dikhao. Bluff mat karo.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
3
Briefly explain all the models
Times asked1
Official solution
Simplemodels.py = har table ki class: columns, PK/FK, relationships. Yeh Model layer hai.
Suggested flow1) Classes list karo
2) Har table ka kaam 1 line
3) Relationships (1-M / M-M)
4) Constraints (unique, nullable)
Example
class Lot(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), nullable=False)
spots = db.relationship('Spot', backref='lot', lazy=True)
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
4
Explain the logic of creating a drive (Show through the code, both frontend and backend)
Viva tipFunction signature + 3-4 important lines + edge case.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
5
Add a field Age(dropdown) with two option Less than 30 and Greater than 30, in the Create Drive page. Then retrieve the value and print it on the terminal.
Times asked1
Official solution
SimpleDemo script pehle se practice: 5–7 min, Admin + User roles, saare mandatory features.
Suggested flow1) Register/login user
2) Admin login — CRUD
3) Approval/blacklist
4) Booking/apply + edge case
5) Search
6) Logout
Simplemodels.py = har table ki class: columns, PK/FK, relationships. Yeh Model layer hai.
Suggested flow1) Classes list karo
2) Har table ka kaam 1 line
3) Relationships (1-M / M-M)
4) Constraints (unique, nullable)
Example
class Lot(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), nullable=False)
spots = db.relationship('Spot', backref='lot', lazy=True)
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
5
Explain login route, stopped me at a random point and pointed at the code and ask me what that line means and what does it do
Viva tipFunction signature + 3-4 important lines + edge case.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
7
In company drive, add a new field called 'Age' as dropdown just in frontend and it should show only options >30 and <30. Then change it to normal field with any input, once you run the app, the age should show in terminal (no need to show in backend and store in database and all)
Times asked1
Official solution
Simplevenv activate → dependencies → DB create/migrate → flask run. Browser pe localhost dikhao.
Viva tipFunction signature + 3-4 important lines + edge case.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
Advice: He seems very chill, he explains calmly and gives you sufficient time to answer, if you dont know just say what you know and say you dont know the rest, he'll move on.
overall viva time was around 45 minutes for me.
* he don’t want me to show the demo, just download the project from submission and open the vscode
Times asked1
Official solution
SimpleExaminer portal wala submitted ZIP chahta hai. Local extra changes mat dikhana.
Suggested flow1) Portal ZIP download
2) Extract
3) venv + pip install -r requirements.txt
4) flask run / python app.py
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
2
* he asked me to explain the architecture, models and it’s relationship and whole work flow of project including app.py, .env or all python file which I created.
Times asked1
Official solution
Simpledb.relationship se object graph: lot.spots, booking.user. backref reverse side auto deta hai.
Suggested flow1) Concept kya hai?
2) Mere code mein kahan?
3) Example / demo
4) Edge case
Example
# related file: models.py / routes / template
# formula: request → check/auth → DB → render/redirect
Viva tipExact line yaad nahi to honestly related part dikhao. Bluff mat karo.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
2
Show me your models and explain
Times asked1
Official solution
Simplemodels.py = har table ki class: columns, PK/FK, relationships. Yeh Model layer hai.
Suggested flow1) Classes list karo
2) Har table ka kaam 1 line
3) Relationships (1-M / M-M)
4) Constraints (unique, nullable)
Example
class Lot(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), nullable=False)
spots = db.relationship('Spot', backref='lot', lazy=True)
Suggested flow1) Concept kya hai?
2) Mere code mein kahan?
3) Example / demo
4) Edge case
Example
# related file: models.py / routes / template
# formula: request → check/auth → DB → render/redirect
Viva tipExact line yaad nahi to honestly related part dikhao. Bluff mat karo.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
Advice: proctor was Adarsh Madre sir himself, asked some basic questions, that test our understanding of our Code, ability to Code and basic theory Qs.
gave me a route "trek/<staffname>" and told me to write a route for this and that route fn should be able to extract staff name and return the trek assigned to that staff.
Viva tipFunction signature + 3-4 important lines + edge case.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
13
and many more questions which i don't remember which he asked from my code
Times asked2
Official solution
SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
Advice: for theory questions prepare from sheet he doesn't check for demo . he said u already passed l1 that means u have an idea about how your application works and all so.
he is nice and chill won't ask hard question just know your code and even for coding questions prepare from sheet only
* Explained the user login and registration workflow.
Times asked2
Official solution
SimpleLogin flow pehle poochta hai "tu kaun hai?", token milne ke baad har API pe wohi proof dikhate ho.
Authentication step: Vue form email + password JSON POST karta hai. Flask user dhoondhta hai, check_password_hash se prove karta hai ki tum genuine ho. Galat 401. Sahi pe JWT + role milta hai — yeh session/token hai.
Vue localStorage (ya cookie) mein token rakhta hai, dashboard pe router.push. Aage ki har fetch header: Authorization: Bearer <token>. @jwt_required identity check (authentication). @roles_required('admin') permission check (authorization) — logged in ho, lekin allowed nahi to 403.
Validation alag cheez hai: empty email, password 8+ — form sahi bhara hai ya nahi. Woh identity prove nahi karta.
Logout = client token delete + login page. Server blacklist optional. Password response JSON mein kabhi mat bhejo.
Example
# Authentication
@app.route('/api/login', methods=['POST'])
def login():
u = User.query.filter_by(email=data['email']).first()
if not u or not check_password_hash(u.password, data['password']):
return jsonify(msg='bad'), 401
return jsonify(token=create_access_token(u.id), role=u.role)
# baad ki APIs
# Authorization: Bearer <token>
if current_user.role != 'admin':
abort(403)
Project example: Login.vue POST /api/login → token LS → interceptor. Student token se admin route = 403. Empty form = validation, galat password = 401.
Viva tipNetwork tab mein password body dikhega localhost pe — prod HTTPS. Response mein hash/password echo mat karo.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
4
* Demonstrated how an admin creates a new trek entry.
Times asked2
Official solution
SimpleDemo script pehle se practice: 5–7 min, Admin + User roles, saare mandatory features.
Suggested flow1) Register/login user
2) Admin login — CRUD
3) Approval/blacklist
4) Booking/apply + edge case
5) Search
6) Logout
* Explained the complete database structure and schema in models.py.
Times asked2
Official solution
Simplemodels.py = har table ki class: columns, PK/FK, relationships. Yeh Model layer hai.
Suggested flow1) Classes list karo
2) Har table ka kaam 1 line
3) Relationships (1-M / M-M)
4) Constraints (unique, nullable)
Example
class Lot(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), nullable=False)
spots = db.relationship('Spot', backref='lot', lazy=True)
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
6
* Detailed the configuration, setup, and working mechanism of Celery and Redis for asynchronous tasks.
Times asked2
Official solution
SimpleSync line pe ruk jao (2+2). Async I/O pe wait karte hue baaki kaam chalte (fetch, Celery).
JS async ≠ Celery async jobs. Context se bolo.
Why async jobs: slow/scheduled/bulk off request thread.
Advice: Irrespective of whether you've used a technology/framework or not, make sure you're aware of all the key frameworks and technologies taught in AppDev theory courses (both 1 and 2)
Ek route explain karne ka template:
1) URL + methods 2) Auth/role check 3) Form/query se data 4) Business rule (duplicate, slots) 5) db.session 6) render ya redirect
Example GET+POST same route: GET form, POST save.
Data HTML se: form name= → request.form. Data HTML ko: render_template(..., items=query).
Nayi .py file: import karke use karo, warna Flask ko pata nahi. Folder rename: imports/paths/templates check.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
4
Background task (Celery) code flow
Times asked2
Official solution
SimpleCelery = background naukri. HTTP request ko 10 second email bhejne ke liye mat rokna.
Distributed task queue: aap function ko abhi nahi, worker process mein later/retry/schedule pe chalaate ho.
User 'Export' click → Celery task queue → Redis message → worker CSV banaata hai → user baad mein download.
Saath isliye: Celery ko broker chahiye, Redis tez in-memory. MAD2 topic zyada, MAD1 mein optional.
Priority: task queues/routing. Caching: Redis mein key-value, DB hits kam.
Pub/Sub: publisher channel pe message, subscribers sunte hain — Redis yeh bhi karta hai.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
6
Why is Redis used?
Times asked2
Official solution
SimpleRedis fridge pe sticky note hai — poori kitchen (database) kholne ki zarurat nahi.
Redis in-memory key-value store hai. Data RAM mein rehta hai, isliye disk wale SQLite/Postgres se kai guna tez.
MAD2 mein Redis do kaam karta hai:
1) Cache — same venue/show/dashboard JSON baar-baar DB se mat nikaalo.
2) Celery message broker — Flask task queue mein daalta hai, worker uthata hai.
Source of truth database hi hai. Redis band ho to cache miss ho jaata hai aur Celery queue ruk sakti hai. Crash pe cache gayab ho sakta hai — isliye important data sirf Redis mein mat rakho.
Project example: GET /api/venues pehle Redis dekho. Miss pe SQLAlchemy query, phir SET with timeout. Celery worker Redis list se daily reminder uthata hai.
Viva tipCache ke liye db=1, broker ke liye db=0 rakhna smart hai taaki keys mix na hon. Viva mein redis-cli ping → PONG dikhana strong hai.
Advice: Explain your code in excruciating detail up front (the functionalities why you used one library over another etc) — the more thoroughly you narrate a file unprompted, the fewer follow-up questions he digs for, since he's mainly testing whether you can explain why something exists, not whether he can catch you out. Learn from other students' form responses beforehand — the question patterns repeat closely across different students with this proctor (same coding-task types, same "versus" pairs). Know the difference between backref and back_populates specifically, not just relationships in general. Be ready to trace a feature end-to-end — from the frontend button/API call through to where the data actually renders on screen — not just the backend route in isolation.
There was no project demo in my case. The examiner directly started asking questions from my codebase. He went through the project line by line and asked why I had written certain things, what they do, and whether I had actually implemented those features.
Times asked2
Official solution
SimpleDemo script pehle se practice: 5–7 min, Admin + User roles, saare mandatory features.
Suggested flow1) Register/login user
2) Admin login — CRUD
3) Approval/blacklist
4) Booking/apply + edge case
5) Search
6) Logout
Viva tipFunction signature + 3-4 important lines + edge case.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
4
What is the purpose of the JWT secret key?
Times asked1
Official solution
SimpleHMAC key. Private. Purpose: signature, not encrypt payload.
algo none attack libraries reject.
Authentication poochta hai "tu kaun hai?", Authorization poochta hai "tujhe yeh kaam karne ki permission hai?"
Authentication: login. Username + password hash check. Success pe JWT/session. Galat credentials = 401.
Authorization: uske baad role. Admin hi venue/lot delete kare, student nahi = 403 (logged in ho, allowed nahi).
MAD2: POST /api/login = authentication. @jwt_required identity. @roles_required('admin') ya Vue v-if="isAdmin" = authorization. Frontend hide sirf UX — asli deny backend pe.
Validation alag: form sahi bhara (email format, age 18+). Woh identity prove nahi karta. Password store hash (Werkzeug), JWT payload padha ja sakta hai isliye secret mat daalo.
Project example: flask shell ya naya route. Dikhao result JSON.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
9
My experience
Times asked2
Official solution
SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
10
Some questions I answered well, some only partially, and a few I couldn't answer. I didn't try to bluff or make things up. Whenever I genuinely didn't know something, I told him honestly.
Times asked2
Official solution
SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
11
At one point, he gave feedback saying that my answers were okay-ish, but I should understand my own code much better. He specifically said that using AI is not an excuse for not being able to explain or write the code yourself. If you've used AI to build something, you should still understand every part of it.
Suggested flow1) Concept kya hai?
2) Mere code mein kahan?
3) Example / demo
4) Edge case
Example
# related file: models.py / routes / template
# formula: request → check/auth → DB → render/redirect
Viva tipExact line yaad nahi to honestly related part dikhao. Bluff mat karo.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
Advice: My advice for everyone
Go through your project line by line.
Understand every import, configuration, and dependency.
Be able to write important snippets (like router configuration or common database queries) without looking.
Learn the concepts behind whatever you've used (JWT, Vue Router, computed, watch, Axios, Pinia, SQLAlchemy, etc.).
If you haven't implemented a feature, be honest. Don't try to fake it.
Revise common Vue concepts like props, emits, computed, watch, routing, conditional rendering, lifecycle hooks, and API calls.
Revise backend concepts like JWT authentication, database relationships, SQLAlchemy queries, and why each package is used.
Final takeaway
The viva is less about whether your project runs and more about whether you truly understand your project. If you know your own code well, you'll do much better than someone who simply copied everything and hoped it wouldn't be asked.
That's all from my side. I hope this helps. Best of luck to everyone appearing for the viva—you've got this!
Lifecycle = component ki zindagi: created (instance, DOM nahi) → mounted/onMounted (DOM ready — fetch, Chart.js yahi) → updated → unmounted (clearInterval).
Dashboard API created mein isliye nahi ki $el/canvas missing ho sakta. Composition API: onMounted(() => {}) setup ke andar. Options: mounted() method. Mix mat.
Examiner 'konsa hook use kiya' — related .vue kholo, line padh ke bolo.
Simpleuselist=False relationship ko list nahi, single object banata hai — one-to-one / many-to-one scalar.
Example
profile = db.relationship('Profile', uselist=False, backref='user')
# user.profile → Profile obj, list nahi
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
8
v-model vs v-bind
Times asked2
Official solution
Simplemodels.py = har table ki class: columns, PK/FK, relationships. Yeh Model layer hai.
Suggested flow1) Classes list karo
2) Har table ka kaam 1 line
3) Relationships (1-M / M-M)
4) Constraints (unique, nullable)
Example
class Lot(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), nullable=False)
spots = db.relationship('Spot', backref='lot', lazy=True)
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
9
and many more question from code like he found some words and asked why you have used these and what these do (i forgot)
Times asked2
Official solution
SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
10
coding question:
Times asked3
Official solution
SimpleLive coding: notepad/editor mein chhota Flask route / Jinja loop / model field. Calm raho, run karke dikhao.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
11
in create drive form add dropdown for age also where age can be >30 or <30 (in frontend)
Times asked2
Official solution
SimpleORM = Object Relational Mapping. Tables → Python classes. Raw SQL kam likhte ho.
Example
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(120), unique=True)
User.query.get(5) # SELECT ... WHERE id=5
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
12
2) in backend you have got a json file { "app" : ">30" } write a code to print that json in terminal it self
Times asked2
Official solution
SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
13
in the end how much AI you have used, what you have done by yourself
Level 2 level1_130 No demo Explain code Questions based on code
Times asked2
Official solution
SimpleLevel = viva difficulty band. Level 1 usually demo + basics; higher pe live coding + deeper theory.
Viva tipJo level assign hai uske hisaab se demo + theory ready rakho.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
2
Login API
Times asked1
Official solution
SimpleLogin flow pehle poochta hai "tu kaun hai?", token milne ke baad har API pe wohi proof dikhate ho.
Authentication step: Vue form email + password JSON POST karta hai. Flask user dhoondhta hai, check_password_hash se prove karta hai ki tum genuine ho. Galat 401. Sahi pe JWT + role milta hai — yeh session/token hai.
Vue localStorage (ya cookie) mein token rakhta hai, dashboard pe router.push. Aage ki har fetch header: Authorization: Bearer <token>. @jwt_required identity check (authentication). @roles_required('admin') permission check (authorization) — logged in ho, lekin allowed nahi to 403.
Validation alag cheez hai: empty email, password 8+ — form sahi bhara hai ya nahi. Woh identity prove nahi karta.
Logout = client token delete + login page. Server blacklist optional. Password response JSON mein kabhi mat bhejo.
Example
# Authentication
@app.route('/api/login', methods=['POST'])
def login():
u = User.query.filter_by(email=data['email']).first()
if not u or not check_password_hash(u.password, data['password']):
return jsonify(msg='bad'), 401
return jsonify(token=create_access_token(u.id), role=u.role)
# baad ki APIs
# Authorization: Bearer <token>
if current_user.role != 'admin':
abort(403)
Project example: Login.vue POST /api/login → token LS → interceptor. Student token se admin route = 403. Empty form = validation, galat password = 401.
Viva tipNetwork tab mein password body dikhega localhost pe — prod HTTPS. Response mein hash/password echo mat karo.
Suggested flow1) Concept kya hai?
2) Mere code mein kahan?
3) Example / demo
4) Edge case
Example
# related file: models.py / routes / template
# formula: request → check/auth → DB → render/redirect
Viva tipExact line yaad nahi to honestly related part dikhao. Bluff mat karo.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
5
What is router view and router link
Times asked1
Official solution
Simplerouter-view = matched page component yahan render. router-link = SPA navigation without full reload.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
6
What is sse
Times asked1
Official solution
SimpleSSE ek tarah ka radio: server bolta rehta, client sunta. Client us pipe pe command nahi bhejta.
text/event-stream. EventSource browser. Notifications ke liye WebSocket se simple.
MAD2 optional. Celery complete hone pe poll bhi kaafi.
HTTP postcard (request-response). WebSocket phone call (dono taraf live). SSE radio (server→client stream). Webhook unka server tumhe POST karta hai (payment).
MAD2 mostly REST. Live dashboard = poll + Redis cache kaafi. Agar implement nahi kiya to design bolo, jhoot mat.
Project example: Export status poll GET task_id. SSE nahi kiya to bolo alternative.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
7
What is state management
Times asked1
Official solution
SimpleShared state across components — Vuex/Pinia. Props hell avoid.
Baar-baar same expensive kaam (DB query, counting bookings) mat karo. Result Redis jaise store mein timeout ke saath rakh do.
Cache hit: key mil gayi, DB skip. Cache miss: DB se lao, SET karo, return karo.
Tradeoff: speed vs stale data. Admin naya venue add kare aur cache 50s ka ho to user purani list dekh sakta hai — isliye write pe invalidation zaroori hai.
@cache.cached(timeout=50, query_string=True)
@app.route('/api/shows')
def shows():
return jsonify([s.serialize() for s in Show.query.all()])
Project example: Admin dashboard counts / venues list cache. Create/update/delete ke baad cache.delete('venues').
Viva tipprint('DB queried') function ke andar laga ke miss/hit demo karo — hit pe print nahi chalega.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
5
Async Await.
Times asked1
Official solution
Examiner code pe ungli rakh ke poochta hai — panic mat karo, 4-line formula bolo.
1) Yeh file/line kya role hai (model / route / template / config)?
2) Input kahan se aata hai (form, URL <id>, session, JSON)?
3) DB pe kya query/write?
4) Output kya (render_template / redirect / jsonify)?
Example
@app.route('/book/<int:id>', methods=['POST']) — logged-in user session se, trek id URL se, Booking add, slots--, redirect history.
Unknown line: imports (request, url_for, flash), decorators, if checks, commit — har keyword ka reason ready rakho.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
6
Authentication vs Authorization.
Times asked10
Official solution
SimpleAuthentication poochta hai "tu kaun hai?", Authorization poochta hai "tujhe yeh kaam karne ki permission hai?"
Authentication: login. Username + password check karke prove karte ho ki tum genuine user ho. Success pe session/token milta hai.
Authorization: uske baad role check. Admin hi parking lot delete kar sakta hai, normal user nahi.
Example (Flask):
# Authentication
if user and check_password_hash(user.password, form_password):
session['user_id'] = user.id
# Authorization
if session.get('role') != 'admin':
abort(403) # logged in ho, lekin allowed nahi
Project example: student login = authentication. Student admin dashboard nahi khol sakta = authorization.
Validation alag cheez hai (form sahi bhara hai ya nahi, jaise age 18+).
4-line formula: input kahan se aaya, auth/validation kaunsa, DB ya cache ya Celery, kya return.
Related mix mat karo — cache ≠ Celery, authentication ≠ authorization, v-if ≠ v-show, Beat ≠ Worker. Follow-up ke liye ek difference ready rakho.
Project example: .env.example.
Project example: .env.example.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
6
Explain the Login API.
Times asked1
Official solution
SimpleLogin flow pehle poochta hai "tu kaun hai?", token milne ke baad har API pe wohi proof dikhate ho.
Authentication step: Vue form email + password JSON POST karta hai. Flask user dhoondhta hai, check_password_hash se prove karta hai ki tum genuine ho. Galat 401. Sahi pe JWT + role milta hai — yeh session/token hai.
Vue localStorage (ya cookie) mein token rakhta hai, dashboard pe router.push. Aage ki har fetch header: Authorization: Bearer <token>. @jwt_required identity check (authentication). @roles_required('admin') permission check (authorization) — logged in ho, lekin allowed nahi to 403.
Validation alag cheez hai: empty email, password 8+ — form sahi bhara hai ya nahi. Woh identity prove nahi karta.
Logout = client token delete + login page. Server blacklist optional. Password response JSON mein kabhi mat bhejo.
Example
# Authentication
@app.route('/api/login', methods=['POST'])
def login():
u = User.query.filter_by(email=data['email']).first()
if not u or not check_password_hash(u.password, data['password']):
return jsonify(msg='bad'), 401
return jsonify(token=create_access_token(u.id), role=u.role)
# baad ki APIs
# Authorization: Bearer <token>
if current_user.role != 'admin':
abort(403)
Project example: Login.vue POST /api/login → token LS → interceptor. Student token se admin route = 403. Empty form = validation, galat password = 401.
Viva tipNetwork tab mein password body dikhega localhost pe — prod HTTPS. Response mein hash/password echo mat karo.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
7
Explain how data is stored in your application.
Times asked1
Official solution
Simpledata() local diary. Store school notice board.
Search query local. Logged-in user store. Persist: store + localStorage together.
Celery Python ka distributed task queue — HTTP request ko 10s email/CSV ke liye mat rokna.
Flow: Flask .delay() → Redis broker → Worker execute. Beat alag process hai (clock): crontab padhke due time pe queue mein daalta hai. Beat khud mail nahi bhejta; Worker haath hai.
MAD2 typical: daily reminder (Beat), monthly report (Beat), user Export CSV (button, Beat nahi). JS async/await browser event loop hai, Celery server-side process — mix mat karo.
Demo: tin terminals — redis-server, celery worker, celery beat — plus Flask. MailHog :8025 inbox. Result backend se task SUCCESS poll optional.
Project example: Three tasks. Commands README.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
12
What are asynchronous (background) jobs?
Times asked1
Official solution
SimpleSync line pe ruk jao (2+2). Async I/O pe wait karte hue baaki kaam chalte (fetch, Celery).
JS async ≠ Celery async jobs. Context se bolo.
Why async jobs: slow/scheduled/bulk off request thread.
Simplelogin.vue save. interceptor. guards. LS key. Show JWT frontend.
Where implemented JWT frontend.
Authentication poochta hai "tu kaun hai?", Authorization poochta hai "tujhe yeh kaam karne ki permission hai?"
Authentication: login. Username + password hash check. Success pe JWT/session. Galat credentials = 401.
Authorization: uske baad role. Admin hi venue/lot delete kare, student nahi = 403 (logged in ho, allowed nahi).
MAD2: POST /api/login = authentication. @jwt_required identity. @roles_required('admin') ya Vue v-if="isAdmin" = authorization. Frontend hide sirf UX — asli deny backend pe.
Validation alag: form sahi bhara (email format, age 18+). Woh identity prove nahi karta. Password store hash (Werkzeug), JWT payload padha ja sakta hai isliye secret mat daalo.
Project example: api.js header.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
14
What is the purpose of the JWT Secret Key?
Times asked1
Official solution
SimpleHMAC key. Private. Purpose: signature, not encrypt payload.
algo none attack libraries reject.
Authentication poochta hai "tu kaun hai?", Authorization poochta hai "tujhe yeh kaam karne ki permission hai?"
Authentication: login. Username + password hash check. Success pe JWT/session. Galat credentials = 401.
Authorization: uske baad role. Admin hi venue/lot delete kare, student nahi = 403 (logged in ho, allowed nahi).
MAD2: POST /api/login = authentication. @jwt_required identity. @roles_required('admin') ya Vue v-if="isAdmin" = authorization. Frontend hide sirf UX — asli deny backend pe.
Validation alag: form sahi bhara (email format, age 18+). Woh identity prove nahi karta. Password store hash (Werkzeug), JWT payload padha ja sakta hai isliye secret mat daalo.
Project example: JWT_SECRET_KEY config.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
15
Difference between JWT Secret Key and Flask Secret Key.
Authentication poochta hai "tu kaun hai?", Authorization poochta hai "tujhe yeh kaam karne ki permission hai?"
Authentication: login. Username + password hash check. Success pe JWT/session. Galat credentials = 401.
Authorization: uske baad role. Admin hi venue/lot delete kare, student nahi = 403 (logged in ho, allowed nahi).
MAD2: POST /api/login = authentication. @jwt_required identity. @roles_required('admin') ya Vue v-if="isAdmin" = authorization. Frontend hide sirf UX — asli deny backend pe.
Validation alag: form sahi bhara (email format, age 18+). Woh identity prove nahi karta. Password store hash (Werkzeug), JWT payload padha ja sakta hai isliye secret mat daalo.
Project example: .env not git. config.py os.environ.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
16
Authentication vs Authorization.
Times asked10
Official solution
SimpleAuthentication poochta hai "tu kaun hai?", Authorization poochta hai "tujhe yeh kaam karne ki permission hai?"
Authentication: login. Username + password check karke prove karte ho ki tum genuine user ho. Success pe session/token milta hai.
Authorization: uske baad role check. Admin hi parking lot / venue / drive delete kar sakta hai, normal user nahi.
MAD2 mein yeh alag layers hain: login API = authentication (JWT milta hai). @roles_required('admin') ya Vue v-if="isAdmin" = authorization.
Validation alag cheez hai (form sahi bhara hai ya nahi, jaise age 18+). Authentication identity hai, authorization permission, validation input quality.
Example
# Authentication
if user and check_password_hash(user.password, form_password):
token = create_access_token(identity=user.id)
# Authorization
if current_user.role != 'admin':
abort(403) # logged in ho, lekin allowed nahi
Project example: Student login = authentication. Student admin dashboard nahi khol sakta = authorization. Frontend button hide sirf UX hai — asli check backend pe hona chahiye.
Viva tip401 = not logged in / bad token. 403 = logged in, role galat. Examiner yeh difference bahut poochta hai.
SimpleSSE ek tarah ka radio: server bolta rehta, client sunta. Client us pipe pe command nahi bhejta.
text/event-stream. EventSource browser. Notifications ke liye WebSocket se simple.
MAD2 optional. Celery complete hone pe poll bhi kaafi.
HTTP postcard (request-response). WebSocket phone call (dono taraf live). SSE radio (server→client stream). Webhook unka server tumhe POST karta hai (payment).
MAD2 mostly REST. Live dashboard = poll + Redis cache kaafi. Agar implement nahi kiya to design bolo, jhoot mat.
Project example: Export status poll GET task_id. SSE nahi kiya to bolo alternative.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
37
Write template and route code to select a course.
Times asked1
Official solution
Simpleselect v-model course POST. Jinja: select name=course. MAD2 Vue. Write template and route select a course.
SimpleCamera pe clearly IITM/college ID dikhao — naam photo match.
Pehle se ID haath mein rakho. Glare mat aane do. Examiner screenshot/verify karta hai. Iske baad GitHub + project run.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
2
Download the project from the Viva Portal or perform checksum.
Times asked5
Official solution
SimpleChecksum file ka hash (jaise SHA256) — file change hui ya nahi verify.
Portal pe submitted ZIP ka checksum diya hota hai. Local file ka hash nikaalo, match hona chahiye.
Linux: sha256sum project.zip
Mismatch = galat file / corrupt download. Examiner integrity check karta hai ki tumhari submitted copy hi run ho rahi hai.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
3
Give a project demo (if asked).
Times asked1
Official solution
SimpleDemo script pehle se practice karo, 5-7 minute, saari roles.
Suggested flow
1) Register/login user 2) Admin login — CRUD 3) Approval/blacklist 4) Booking/apply 5) Search 6) Validation edge (slots 0, duplicate) 7) Logout
Bolte-bolte dikhao: 'Yahan overbooking rokta hoon'. Code tab kholna jab poochhein.
Crash ho to debug calmly: terminal error, typo, DB path.
Mandatory features skip mat karna — examiner list tick karta hai.
Ek route explain karne ka template:
1) URL + methods 2) Auth/role check 3) Form/query se data 4) Business rule (duplicate, slots) 5) db.session 6) render ya redirect
Example GET+POST same route: GET form, POST save.
Data HTML se: form name= → request.form. Data HTML ko: render_template(..., items=query).
Nayi .py file: import karke use karo, warna Flask ko pata nahi. Folder rename: imports/paths/templates check.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
5
Explain all project files (app.py, .env, routes, models, etc.).
Ek route explain karne ka template:
1) URL + methods 2) Auth/role check 3) Form/query se data 4) Business rule (duplicate, slots) 5) db.session 6) render ya redirect
Example GET+POST same route: GET form, POST save.
Data HTML se: form name= → request.form. Data HTML ko: render_template(..., items=query).
Nayi .py file: import karke use karo, warna Flask ko pata nahi. Folder rename: imports/paths/templates check.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
6
Explain the complete project workflow.
Times asked2
Official solution
SimpleDemo script pehle se practice karo, 5-7 minute, saari roles.
Suggested flow
1) Register/login user 2) Admin login — CRUD 3) Approval/blacklist 4) Booking/apply 5) Search 6) Validation edge (slots 0, duplicate) 7) Logout
Bolte-bolte dikhao: 'Yahan overbooking rokta hoon'. Code tab kholna jab poochhein.
Crash ho to debug calmly: terminal error, typo, DB path.
Mandatory features skip mat karna — examiner list tick karta hai.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
7
Explain the models and their relationships.
Times asked1
Official solution
Simplemodels.py har table ki class hai — columns, PK/FK, relationships. Yeh Model layer hai.
Viva mein file khol ke bolo:
1) Kaunsi classes/tables hain (User, Role-specific, Booking...)
2) Har table ka kaam 1 line
3) Relationships: 1-1 / 1-M / M-M, backref, cascade, lazy
4) Constraints: unique email, nullable, default status
Example skeleton
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(120), unique=True, nullable=False)
role = db.Column(db.String(20), default='user')
bookings = db.relationship('Booking', backref='user', cascade='all, delete-orphan')
ER diagram: rectangles entities, lines relationships, PK/FK mark. Schema = yahi structure.
Tables create: db.create_all() ya migrations. SQLite file SQL viewer se dikha sakte ho.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
8
Explain a specific section/line of code selected by the proctor.
Times asked1
Official solution
Examiner code pe ungli rakh ke poochta hai — panic mat karo, 4-line formula bolo.
1) Yeh file/line kya role hai (model / route / template / config)?
2) Input kahan se aata hai (form, URL <id>, session, JSON)?
3) DB pe kya query/write?
4) Output kya (render_template / redirect / jsonify)?
Example
@app.route('/book/<int:id>', methods=['POST']) — logged-in user session se, trek id URL se, Booking add, slots--, redirect history.
Unknown line: imports (request, url_for, flash), decorators, if checks, commit — har keyword ka reason ready rakho.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
9
Explain the login route and its workflow.
Times asked1
Official solution
SimpleLogin GET form dikhata hai, POST credentials check karke session set karta hai.
@app.route('/login', methods=['GET','POST'])
def login():
if request.method == 'POST':
u = User.query.filter_by(email=request.form.get('email')).first()
if u and check_password_hash(u.password, request.form.get('password')):
if getattr(u, 'blacklisted', False):
flash('Blocked'); return redirect(url_for('login'))
session['user_id'] = u.id
session['role'] = u.role
return redirect(url_for('dashboard'))
flash('Invalid')
return render_template('login.html')
Logout: session.clear(); redirect login. Incognito alag cookie jar — logged out dikhega.
Single login page: role se redirect alag dashboards.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
10
Explain a feature route (e.g., Add Lot/Create Drive) from frontend to backend.
Times asked1
Official solution
SimpleFrontend user jo dekhta/click karta hai, Backend server logic + database.
Frontend: HTML, CSS, Bootstrap, Jinja templates, thoda JS. Browser pe chalta hai.
Backend: Flask routes, SQLAlchemy, session, validation. Python server pe.
Data flow: form POST → Flask request.form → DB save → render_template/redirect → HTML dikha.
MAD1 typical stack: Flask + Jinja + SQLAlchemy + SQLite + Bootstrap.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
11
Explain how the frontend template connects to the backend.
Iske bina session/flash unreliable ya insecure. Key leak = attacker session forge kar sakta hai.
Hardcode mat karo production mein — .env / environment variable. Flash messages bhi session use karti hain, isliye SECRET_KEY se related hain.
Hataane pe session kaam nahi / warning. Change karne pe purane sessions invalid.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
14
Why is SECRET_KEY used and how does it work?
Times asked1
Official solution
SimpleSECRET_KEY Flask ka secret jisse session cookies sign/encrypt hoti hain.
Iske bina session/flash unreliable ya insecure. Key leak = attacker session forge kar sakta hai.
Hardcode mat karo production mein — .env / environment variable. Flash messages bhi session use karti hain, isliye SECRET_KEY se related hain.
Hataane pe session kaam nahi / warning. Change karne pe purane sessions invalid.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
15
What is backref?
Times asked12
Official solution
Simplebackref relationship ki reverse side automatically bana deta hai.
class Post(db.Model):
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
user = db.relationship('User', backref='posts')
Ab post.user milta hai, aur user.posts bhi — Post model pe sirf ek line.
secondary Many-to-Many junction table ke liye: relationship(..., secondary=likes_table, backref='liked_by').
Explicit chahiye to back_populates use karo.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
16
Difference between GET and POST.
Times asked7
Official solution
SimpleGET data mangta hai (read), POST data bhejta hai (create/submit).
GETURL mein dikhta hai, bookmark ho sakta hai, browser back/refresh safe hai, data URL query mein jaata hai. Search, page open, login form dikhana.
POSTbody mein data jaata hai, URL mein password nahi dikhta, refresh pe dubara submit ho sakta hai. Login, register, form save.
Example
# page dikhana
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'GET':
return render_template('login.html')
# POST: form submit
email = request.form.get('email')
...
GET se theoretically data bhej sakte ho (?q=flask), lekin create/update ke liye nahi use karna — data log/history mein save ho jaata hai, length limit hoti hai.
HTML form default GET hota hai; method='POST' likhna zaroori hai login/register pe.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
17
Difference between PUT and POST.
Times asked6
Official solution
SimplePOST nayi cheez create karta hai, PUT existing cheez ko replace/update karta hai.
POST /books → naya book add. Har baar naya ID banega. Idempotent nahi — 2 baar POST = 2 records.
PUT /books/5 → id=5 wale book ko poora update. Same PUT dubara bhejo to same result (idempotent).
PUT se create bhi ho sakta hai (agar ID client decide kare), lekin REST convention: create = POST, replace = PUT, partial = PATCH.
HTML <form> PUT nahi bhejta, isliye Flask apps mein edit pe bhi POST use hota hai. Examiner ko yeh reason clearly bolo.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
18
Can PUT and POST be used interchangeably?
Times asked1
Official solution
SimplePOST nayi cheez create karta hai, PUT existing cheez ko replace/update karta hai.
POST /books → naya book add. Har baar naya ID banega. Idempotent nahi — 2 baar POST = 2 records.
PUT /books/5 → id=5 wale book ko poora update. Same PUT dubara bhejo to same result (idempotent).
PUT se create bhi ho sakta hai (agar ID client decide kare), lekin REST convention: create = POST, replace = PUT, partial = PATCH.
HTML <form> PUT nahi bhejta, isliye Flask apps mein edit pe bhi POST use hota hai. Examiner ko yeh reason clearly bolo.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
19
What is an idempotent HTTP method?
Times asked1
Official solution
SimpleIdempotent method ko kitni baar chalao, result same rehna chahiye.
GET, PUT, DELETE theoretically idempotent. POST nahi — har POST naya record bana sakta hai.
PUT /user/1 {name:Ram} 5 baar = same user Ram.
POST /user {name:Ram} 5 baar = 5 users.
DELETE pehli baar delete, doosri baar 404 — resource state same (deleted).
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
20
What happens if method="POST" is removed from an HTML form?
Times asked1
Official solution
Definition style question: 1 line simple Hinglish + project example + mini code.
Template'X ka kaam Y hai. Mere project mein Z jagah use hua.'
Example'Session login state rakhta hai. session[user_id]=u.id login pe, logout pe session.clear().'
Agar topic Vue/Celery/Redis ho aur project mein nahi hai to sach bolo, theory example do.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
21
If url_for() is removed from redirect(), how would you achieve the same result?
Times asked1
Official solution
Simpleurl_for sirf URL string banata hai, redirect us URL pe browser ko bhejta hai.
url_for('home') → '/home' (function name se URL nikalta hai)
redirect(url_for('home')) → browser ko /home pe le jaata hai
Example
return redirect(url_for('dashboard')) # sahi
return redirect('/dashboard') # hardcode, route change pe toot jaayega
Agar redirect se url_for hata do to khud path string dena padega: redirect('/dashboard').
Agar url_for('home') ko url_for('home_page') kar do aur home_page naam ka function nahi hai to BuildError aayega.
url_for ko function ka naam chahiye, URL path nahi.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
22
Difference between id and name attributes.
Times asked1
Official solution
SimpleForm user input server ko bhejti hai. Table rows/columns dikhati hai.
name attribute server pe key ban'ti hai: request.form['email']. id JS/CSS, value default/dikhta hua text.
action URL. method GET/POST. enctype file upload pe multipart.
required frontend empty submit rokta hai (backend phir bhi check).
SimpleBlock poori line leta hai, Inline text ke saath baithta hai.
Block (div, p, h1, section): width 100%, next element neeche aata hai. Height/width/margin set kar sakte ho.
Inline (span, a, strong): sirf content jitni jagah. Width/height generally nahi chalti.
Inline-block: inline ki tarah baithta hai, lekin width/height milti hai.
Example
<div>Hello</div><div>World</div> do lines. <span>Hello</span> <span>World</span> ek line.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
24
Difference between Inline CSS and Internal CSS.
Times asked2
Official solution
Yeh live UI/CSS change hai. Examiner jo element bole uski CSS turant badlo.
Difference between Authentication and Authorization.
Times asked20
Official solution
SimpleAuthentication poochta hai "tu kaun hai?", Authorization poochta hai "tujhe yeh kaam karne ki permission hai?"
Authentication: login. Username + password check karke prove karte ho ki tum genuine user ho. Success pe session/token milta hai.
Authorization: uske baad role check. Admin hi parking lot delete kar sakta hai, normal user nahi.
Example (Flask):
# Authentication
if user and check_password_hash(user.password, form_password):
session['user_id'] = user.id
# Authorization
if session.get('role') != 'admin':
abort(403) # logged in ho, lekin allowed nahi
Project example: student login = authentication. Student admin dashboard nahi khol sakta = authorization.
Validation alag cheez hai (form sahi bhara hai ya nahi, jaise age 18+).
url param display: @app.route('/show/<int:id>') return render_template('show.html', id=id)
Form → next page: POST values render_template('out.html', **request.form)
Count: return str(User.query.filter_by(is_blacklisted=True).count())
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
28
What is API parsing/argument parsing?
Times asked1
Official solution
SimpleAPI = Application Programming Interface — do systems predefined rules se baat karti hain. REST API HTTP + JSON use karti hai.
Controller/route HTML bhi return kar sakta hai. REST API generally JSON return karti hai, frontend alag ho (Vue/Postman).
Example
@app.route('/api/users/<int:id>')
def get_user(id):
u = User.query.get_or_404(id)
return jsonify(id=u.id, name=u.name)
MAD1 HTML apps mein 'API' kabhi-kabhi routes ko hi keh dete hain. Agar Vue nahi to bolo: server-rendered Flask, JSON APIs optional.
Boolean return: technically jsonify(True) ho sakta hai, lekin meaningful JSON object better. Flask view None return kare to error.
Test: Postman se GET/POST.
Parsing: request.get_json() body se, request.args query se.
Community answers
No replies yet
No community answers yet
Open My solution to be the first to share yours.
My solution
Not submitted yet
29
Write the Git command to create/switch branches.
Times asked1
Official solution
SimpleGit files ki history rakhta hai. GitHub remote + collaborator viva check.