Viva prep · Real questions · Student experiences Enroll in Bootcamp

Proctor workspace

Proctor Level1_91

Share your experience Add your viva experience here
460 Questions
71 Sets
0 Topics
13 Reviews
Tips for this examiner: Mostly Repeated questions of this procter. All the best!

Student reviews

Vithyasagar MAD1

Just be aware of your code which line has the code for which feature. He asks it for sure.
Then make sure to be ready to change the minor code changes like I have mentioned. He is chill. Ended by saying all the best for Level 2

Questions remembered
  1. ID Card Github Collaborator Asked to download project from portal Waits till you install dependencies and run the application Asked if I have used JWT or not Asked me to register as a Company, approve it and create a drive, and also asked if search features are implemented Basically checked the features are implemented or not Asked to show where the code for a certain feature is there, and also for celery tasks code too. Theory Questions:
  2. Why we use Celery with Redis
  3. CDN vs CLI
  4. Use of Redis Code changes:
  5. Change the color of the button(frontend)
  6. Change the route so that when we navigate to login in browser, it should take to company register page(backend)
Mahaprasad Nanda MAD1

Know your codebase very well. because he can ask you to explain or show any part of the code of his choice. else He was chill and supportive.

Questions remembered
  1. ID
  2. Github Collaborator
  3. download the project from the portal and start the demonstration
  4. I had some issues with setting up the venv. so in the meanwhile he helped me setting up the venv.
  5. While the requirements was downloading he asked some theory question like cdn vs cli, V-model in vuejs and some other theory questions i don't exactly remember. after that he told me to login as admin and demonstrate the functionality and so on towards demonstration.
  6. He was asking for every particular feature like in the code where have you implemented this. Than asked me to change the colour of the navbar and on the notepad asked me to write a sqlalchemy query. after that he said be ready for level-2
PJ MAD1

Nice and Chill Guy

Questions remembered
  1. Proctor : level1 91
  2. ID and GitHub Collab verification
  3. Project Demo
  4. Asked to make live changes (1 in both frontend and backend) :
  5. can you make a code change such that when a user types /register in the browser address bar, it actually displays the Login page instead of the Registration page?
  6. remove the border shadow in login form
  7. What is ORM
  8. What is SQL injection
  9. What is CRUD Applications All done in 20 minutes
Sheet response MAD1

Know your Code Well

Questions remembered
  1. Asked whether I would like to do checksum or download from portal
  2. Application Introduction and how it works
  3. CRUD
  4. HTTP methods
  5. GET vs POST
  6. Asked to paste the link in any other Browser and asked why is it asking for log in again. Asked to show that part of code where I implemented that feature.
  7. Status Codes
  8. Change the button color in Company Dashboard
  9. Write a route for admin to see any unapproved drives
  10. Locate the code where admin can see companies
MAD1 Level 1 MAD1

Remember the basics. I have not received my score yet so I can't say how my strategy was.
I downloaded my code from portal and made a virtual environment upfront instead of doing checksum, proctor was fine with both.

Spent majority of my time explaining my code thoroughly when showing my website, showing features, database, how my database updated and stuff.

Sir didn't ask questions when I was explaining. After that he asked about the things I questions.

Questions remembered
  1. Go through all of the features of your website and show functionality.
  2. Make a html form in my dashboard that takes 2 inputs.
  3. Write syntax of a sql query.
  4. What is request.
  5. What is payload.
  6. Show that Admin can search for companies and Students 7)Show that user can edit their profile. ( I showed resume submission and viewed the pdf too)
Suyash MAD1

Level1 91 sir was really patient and helpful. Revise all concepts and you should be fine.

Questions remembered
  1. Asked difference between filter and filter by
  2. What are requests?
  3. Tech stack used
  4. What is sqlalchemy
  5. Add an option of your choice in create drive (coding) like for example if eligibility, job description, job title etc are present. They asked to add something like cgpa.
Radha N MAD1

Kind, supportive

Questions remembered
  1. Show the id
  2. Download submission from viva workflow site
  3. Show the functionality of my website
  4. To explain line 10 and 11 of my code
  5. How to code if I have to change db from instance folder to static folder
  6. Can patient edit the information
Bharat Maheshwari MAD1

Shared viva questions from response sheet: What is CDN; How do you get a user from SQLAchemy query; What is bootstrap

Questions remembered
  1. What is CDN
  2. How do you get a user from SQLAchemy query
  3. What is bootstrap
Sheet response MAD1

Shared viva questions from response sheet: - demo of the app; - checked features from view rubrics points on portal; - explain user class

Questions remembered
  1. - demo of the app
  2. - checked features from view rubrics points on portal
  3. - explain user class
  4. - what is ORM? explain
  5. - what are http methods
  6. - difference between get and post
.. MAD1

Focus on config.py and api

Questions remembered
  1. Main focus on configuration and API
  2. Asked what can replace dotenv
  3. Demo of project
  4. Basic Jinja coding
  5. How have I implemented charts
Shriyash Jagtap MAD1

Shared viva questions from response sheet: No theory question asked me to code, please go through jinja and flask api end points and how they are made, heard that he asked same question to some other student, also learn your config file well and be ready for coding

Questions remembered
  1. No theory question asked me to code, please go through jinja and flask api end points and how they are made, heard that he asked same question to some other student, also learn your config file well and be ready for coding
Abhist Jain MAD1

Be calm you can take time and just be honest don't fake anything or try to cheat. He is a very genuine and a good guy.

Questions remembered
  1. So first thing was checksum, After that i created the venv setup he clearly asked everything what am i doing why am i doing and all. took 5 mins.
  2. Then i showed him all the curd working fine explain him everything in detail. Since i implemented the extra functionalities like (continents -> country -> state -> city -> parking lot -> parking spot -> reservation) and their CURD took of time there to show everything. He was very very impressed. Also the folder structure i used and the enum architecture which make application robust and scalable.
  3. Question 1: what is blueprint and why do we use it.
  4. Question 2: How to write for loop if else in jinja 2?
  5. Question 3: Show me a basic working route how u created.
  6. Question 4: Open any xyz route and explain it to me what have u done and how have u done it ?
  7. Question 5: How have you done authentication and how u implemented in the application? E.g. JWT and Flask_Login in my case i did both.
  8. Question 6: Difference between authentication and authorization ?
  9. Question 7: Can u explain how to initalize any flask application and i explained him everything?
  10. Note: I asked him for any feedback he said: "U did a great job and i am very impressed with your work."
Sheet response MAD1

just don't panic and be honest

Questions remembered
  1. Demo of app
  2. Asked to demonstrate specific functionalities
  3. What's the tech stack used
  4. How to initialise flask
  5. How to use if condition in jinja
  6. What's orm and which one have you used
  7. How to get the email of an user in orm if you have their username

Approved viva sets

  1. 1
    2)show the github colab
    Times asked 1
  2. 2
    3)download the zip folder from website or use checksum(just download the file but keep the vs code open before downloading it having all packages installed make sure it is running
    Times asked 2
  3. 3
    just act like you opened the file which you downloaded )
    Times asked 2
  4. 4
    4)demonstration
    Times asked 2
  5. 5
    5)questions regarding the functionalites
    Times asked 2
  6. 6
    7)asked to wirte a app route
    Times asked 2
  7. 7
    8)asked to change the frontend part of code
    Times asked 2
  8. 8
    10)diff b/w vshow and vif
    Times asked 2
Advice: If he tells you the app looks good, which mean get ready to answer all the forntend part , and be prepared with each line of code. he might ask anything He took viva for 1 hour
  1. 1
    Everything similar from sheet + Difference between beforemount and beforestart
    Times asked 2
  1. 1
    3.Export csv and how it works
    Times asked 2
  2. 2
    4.Can you send daily reminders message using celery?
    Times asked 2
  3. 3
    5.change the background color of a button
    Times asked 1
  4. 4
    6.explain handling duplicate booking
    Times asked 2
  5. 5
    9.Open notepad and write a query to book for easy treks (asked me to open models.py and asked to write query)
    Times asked 2
Advice: Very cool proctor and he will give suggestions then and there.
  1. 1
    Questions asked by the Viva Examiner
    Times asked 2
  2. 2
    Implement and explain the code.
    Times asked 2
  3. 3
    Show backend and frontend implementation.
    Times asked 2
  4. 4
    Why Redis and Celery?
    Times asked 1
  5. 5
    Explain application execution flow.
    Times asked 2
  6. 6
    Explain CSV-related code.
    Times asked 2
  7. 7
    Show email reminders/notifications.
    Times asked 2
  8. 8
    Explain database tables and relationships.
    Times asked 2
Advice: Suggestions/Tips Read your entire code thoroughly. Know your frontend, backend, database, and execution flow. Understand every feature you implemented. Practice basic SQL queries. Be honest if you don't know an answer—the examiner is helpful, but you should know your own code.
  1. 1
    run the app he will ask you to login as admin, staff, trekker and show some functionalisties. 3.show/explain how have you prevented overbooking.
    Times asked 1
  2. 2
    code questions: a) write query to get list of blacklisted staff b) change colour of sidebar.
    Times asked 1
Advice: He's very patient, polite and supportive. Just know your codebase well.
  1. 1
    Asked to show the functionalities of the app and guided through out.
    Times asked 2
  2. 2
    Asked questions on redis, celery
    Times asked 2
  3. 3
    Asked to write query for blacklisted companies.
    Times asked 1
  4. 4
    SQAlchemy injection 7)Asked to change button Background.
    Times asked 2
Advice: He is very supportive, will wait patiently for everything and will guide you when u need.
  1. 1
    *Asked me to show my ID card.
    Times asked 2
  2. 2
    * Checked my GitHub repository.
    Times asked 2
  3. 3
    * Asked me to run the project and demonstrate the complete company flow:
    Times asked 2
  4. 4
    * Company registration
    Times asked 2
  5. 5
    * Student applies for the drive
    Times asked 2
  6. 6
    * Asked if the same student could apply twice for the same drive. I explained the frontend validation and backend *Unique Constraint* for duplicate prevention.
    Times asked 1
  7. 7
    * Finally, he asked me to write an API to fetch all blacklisted users.
    Times asked 2
  8. 8
    * After that, he said, "You did well. You are eligible for MAD2." and asked me to leave the Google Meet.
    Times asked 2
Advice: Overall,Very friendly examiner. He gave enough time to demonstrate everything and the viva felt comfortable.
  1. 1
    # Trekking Management App
    Times asked 2
  2. 2
    - Verified the ID card and github collaborator
    Times asked 1
  3. 3
    - Then during the project demonstrate he guided me through the flow himself... like login as an admin first, then make staff, then create a trek... you just have to follow 🫡..
    Times asked 1
  4. 4
    - Also asked me to demonstrate the export csv functionality and then open the csv file
    Times asked 2
  5. 5
    - Webhooks lifecycle and how do we use them in an app
    Times asked 2
  6. 6
    - What is a session and localStorage? What's the difference between them?
    Times asked 2
  7. 7
    - Asked me to show where I had implemented the logic for the trekker to not be able to book treks which had no slots available
    Times asked 2
  8. 8
    - Write a query to get all the blacklisted staff members
    Times asked 1
  9. 9
    - Change the color of the sidebar and some buttons
    Times asked 2
Advice: He was really patient and supportive throughout the viva... helped me resolve some errors i was getting while showing him the export csv functionality... he was patiently waiting for me to complete my setup and whenever i had to search for a particular line in my code... for the celery tasks because I had no past emails to show him he just said, "show me the code and I'll give you the marks based on that"... overall quite a chill proctor 😃
  1. 1
    Show Repo then collaborator
    Times asked 2
  2. 2
    For commands, I asked him then used readme file.
    Times asked 2
  3. 3
    Search application as admin
    Times asked 2
  4. 4
    Log in as company and Create a drive
    Times asked 2
  5. 5
    Approve the drive
    Times asked 2
  6. 6
    Login/register and Apply as a student
    Times asked 2
  7. 7
    Asked Can i apply twice, then he asked to show the code for it. I had implemented both frontend and backend validation, so I showed both.
    Times asked 1
  8. 8
    Asked about Jwt, but I told him I have used flask-security.
    Times asked 2
  9. 9
    Show mail for admin report, reminder
    Times asked 2
  10. 10
    In notepad - sqlalchemy query for retrieving all the blacklisted students.
    Times asked 1
Advice: He was very Chill. All the questions he asked were already in sheet. Time was 6pm but he joined 6:15 bcoz of something, still he was calm and didn't rush me for anything. Gave me time for doing what he asked, like installing the dependencies and all takes time. I was kind of just notifiying him like backend is running now, redis-server is running... Between these installs, there was complete silence, he didn't ask anything and I was just saying things after completing them or when he asked. Be calm, explain everything confidently. All the Best!!
  1. 1
    I had some issues with setting up the venv. so in the meanwhile he helped me setting up the venv.
    Times asked 2
  2. 2
    He was asking for every particular feature like in the code where have you implemented this. Than asked me to change the colour of the navbar and on the notepad asked me to write a sqlalchemy query. after that he said be ready for level-2
    Times asked 2
Advice: Know your codebase very well. because he can ask you to explain or show any part of the code of his choice. else He was chill and supportive.
  1. 1
    He asked for demo (He himself told me the flow , like login as company , then approve as admin , ...)
    Times asked 2
  2. 2
    Have you used jwt?
    Times asked 1
  3. 3
    Then he asked me to show the code for sending the approval mail (after a company is successfully approved by admin)
    Times asked 2
  4. 4
    Then he asked many pieces of code like where is this , that etc...
    Times asked 2
  5. 5
    Then he asked me ports like what is 400, 401 , 200 , 403 etc....
    Times asked 2
  6. 6
    Then he asked me to show the sent mail( he also approves if you show him already sent mails that you've tested and you can show that from your inbox)
    Times asked 2
  7. 7
    Have you used ai ( I coded the blueprint and routes myself and used ai to refine the code and generate the messages to be send in the mail) and he said ok
    Times asked 2
  8. 8
    He asked me to code celery scheduler...i did'nt know so he asked...(you said you coded yourself , then why not this ? I told..if you'd allow me to verify celery documentation , I'll brush up the syntax and code it- Then he said not necessary)
    Times asked 1
  9. 9
    He asked me to code the route to display all unapproved drives
    Times asked 2
  10. 10
    Then he asked me to change the color and size of a button
    Times asked 2
  11. 11
    Finaly he asked...
    Times asked 2
Advice: He was very nonchalant , he will ask a question and won't ask any cross question until you answer it or directly tell him you don't know... Viva was exactly for 30 minutes One thing that can impress him is , whatever functionality he asks , know where that part of code is , in your project . He won't talk much , but he is not very strict too.... The coding questions are repeated . So make sure to go through the spreadsheet..Btw mine was level 1 He is very patient and waits for you to search your file . Just don't stay silent
  1. 1
    Can a drive be edited after it has been created?
    Times asked 2
  2. 2
    What are HTTP status/error codes? like 201, 403 etc.
    Times asked 2
  3. 3
    Remove Actions column from the Registered Companies table in the Admin Dashboard frontend.
    Times asked 2
  4. 4
    Show the scheduler code.
    Times asked 2
  5. 5
    Something related to email sender functionality.
    Times asked 2
  6. 6
    Can companies change the status of student applications?
    Times asked 2
  7. 7
    How do you ensure that a student can apply to a drive only once?
    Times asked 2
  8. 8
    Write a new route to list all blacklisted companies.
    Times asked 2
Advice: Just be chill because he is chill too.
  1. 1
    List of deactivated users
    Times asked 2
  2. 2
    Change colour of button
    Times asked 1
Advice: Take your time. Explain everything in detail. Show everything in demo. Don't stop talking.
  1. 1
    Ask me to run the app ...ask to implement functionality like register company add drive blacklist company etc.. then he ask me to show backend job of some functionality like where I implement eligibility criteria to apply for job ... Then ask me to show celery schedule jobs and ask me to export CSV.. then he ask to change colour of nav bar and then he ask me to write query to fetch blacklist company in notepad and some theoretical questions: lifecycle hook , create vs mount , caching
    Times asked 1
Advice: He was too humble , be honest if you don't know and kyc
  1. 1
    explain the project
    Times asked 2
  2. 2
    RBAC how implemented?
    Times asked 2
  3. 3
    login as company, login as student, create drive, apply as student to drive, export csv(basically any random subset of core requirements)
    Times asked 2
  4. 4
    Code a route in notepad(I had to display unapproved drives. Wasn't able to do it)
    Times asked 2
Advice: He doesn't speak much but I didn't feel he was too strict. Just be confident and if you don't know something, be honest. Don't try to decieve him.
  1. 1
    GitHub repo
    Times asked 3
  2. 2
    download start
    Times asked 2
  3. 3
    explain routes
    Times asked 2
  4. 4
    trek register
    Times asked 2
  5. 5
    staff making activate deactivate
    Times asked 2
  6. 6
    staff login : assign staff
    Times asked 2
  7. 7
    user register & book
    Times asked 2
  8. 8
    history
    Times asked 2
  9. 9
    celery beat worker
    Times asked 2
  10. 10
    redis working
    Times asked 2
  11. 11
    vue cycles
    Times asked 2
  12. 12
    Cdn vs cli
    Times asked 3
Advice: He is nice just comes late everytime and enjoys the viva and helps you
  1. 1
    check collaboration
    Times asked 2
  2. 2
    He told me to login as admin ,then add trek,add staff,change staff
    Times asked 2
  3. 3
    login as staff then saw all features there ,then he told me to change slots and show in code where I had implemented that.
    Times asked 1
  4. 4
    login as user ,book any trek then he told me to show code where I manage the overbooking.
    Times asked 2
  5. 5
    Then he told me to show backend jobs and saw my previous sent mail when I tested it .
    Times asked 1
  6. 6
    Show export CSV and told me to change the bg color of that (export CSV) button.
    Times asked 2
  7. 7
    then he told me to change backend such that when I run the application, I land to register page not login .
    Times asked 2
Advice: Theory questions are generally same . He only ask about caching,redis,ORM,vue lifecycle hooks. The overall experience was good and don't wry just know your code well and you are good to go . Idk why he told me to do changes in Level 1. All the best.
  1. 1
    GitHub (checked both number of commits and collaborators)
    Times asked 2
  2. 2
    What is Vue lifecycle hook
    Times asked 1
  3. 3
    Are you generating monthly reports? (I showed him the frontend but my beat wasn't working so I told him that and he said to fix it before level 2)
    Times asked 1
Advice: Nice proctor. Passed me. Just be calm and explain your code and app well.
  1. 1
    He asked have you yourself used AI, means he got sus.
    Times asked 2
  2. 2
    Have you applied all 4 functionalities
    Times asked 2
  3. 3
    Have you applied caching
    Times asked 1
  4. 4
    If a user triggers any API, explain its flow
    Times asked 2
  5. 5
    Write a new .vue file in notepad
    Times asked 2
  6. 6
    What are vue computed properties.
    Times asked 2
Advice: Be ready with the coding changes both for frontend and backend cause it's mentioned in the rubrics also. Take most of the time explaining your project.
  1. 1
    RESCHEDULE THE VIVA
    Times asked 2
  1. 1
    Vue Lifecycle (the 4 stages and a brief explanation for each stage in it is better to know)
    Times asked 1
  2. 2
    Whats ORM (I did raw sql i was honest abt it i told ppl said u can go with either aproach he said ok)
    Times asked 2
  3. 3
    did u implement JWT tokens (if not then y and what u did)
    Times asked 2
  4. 4
    and smth else idr
    Times asked 2
Advice: show ur demo properly i was lucky as he was in a hurry as he had another viva so he left me within 15-20 mins and also so luckily no code making and code changes . but i had rescheduled from thur 530 pm to fri 630 pm. be confident and be honest as much as possible especially in the more important stuff u shd others viva for same proctor its best coz he was in hurry for me so was just wanting me to finish fast so he just said to everything i said
  1. 1
    - Celery task modification
    Times asked 2
  2. 2
    - Cache and its implementation
    Times asked 2
  3. 3
    - Whether I used AI for the frontend
    Times asked 2
Advice: Guy was chill; please present your app in a good way; That should be sufficient.
  1. 1
    the worst viva i have ever seen in my life :
    Times asked 2
  2. 2
    asked to show demo
    Times asked 1
  3. 3
    asked to write api routes in notepad (i did 90% code but one small thing i was not able to do)
    Times asked 2
  4. 4
    asked what is jwt where its mentioned
    Times asked 2
  5. 5
    told me to write vue codes
    Times asked 2
  6. 6
    then told me to write flask api
    Times asked 2
  7. 7
    asked what is vue library
    Times asked 2
  8. 8
    then he said i have done malpractice cause the code was very clean and i had given multi-line comments (i said that i saw in live sessiosn also and read that multi-line commens are good to write) but said i didnt wrote the code by myself and i will be malpracticed
    Times asked 2
  9. 9
    took my viva for 1 hour !!!
    Times asked 2
  10. 10
    hope i pass (even a E grade is okay this time)
    Times asked 2
Advice: prepare well for him... he likes to fail students
  1. 1
    1)show id
    Times asked 1
  2. 2
    Give demo
    Times asked 2
  3. 3
    have you implemented everything/ did you miss anything
    Times asked 2
  4. 4
    where did you implement Caching
    Times asked 2
Advice: chill proctor, he doesn't talk for a long time or doesn't respond for a long time during viva, idk why, it'll be like you are talking to yourself :), just show everything you implemented and be confident
  1. 1
    show id card and repo
    Times asked 1
  2. 2
    edit celery task to schedule periodic tasks to run during viva (ask him if it's okay to edit it before doing anything)
    Times asked 2
  3. 3
    demo (just walk through the features, no need to explain code right away. i clarified whether he wanted me to explain while showing before i started and he said no.)
    Times asked 1
  4. 4
    he asked me to show where i had used RESTful API
    Times asked 2
  5. 5
    what is jwt_required wrapper function and admin_required (custom function i made)
    Times asked 2
Advice: the key is to be confident while presenting and explaining! and just know basics of things you've done with your code and you'll do well. all the best!
  1. 1
    What percent is generated using AI? Did you mention this in the report?
    Times asked 2
  2. 2
    Walk me through all the important features
    Times asked 2
  3. 3
    Write a code for a simple sqlalchemy query. (I showed him my existing queries rather than writing)
    Times asked 1
  4. 4
    Explain what is Lifecycle hooks. (Explained this and showed implementation in code)
    Times asked 1
  5. 5
    What is JWT? Did you use this? (I didnot)
    Times asked 2
  6. 6
    Where did you store the token?
    Times asked 2
  7. 7
    What will happen when we do a hard reload?
    Times asked 2
Advice: I stored my token in the localStorage and then from the localStorage I stored that in a Vuex.store object but according to him I was able to access the page even after reloading even though I was using Vuex.store. He asked me why and I couldnot figure it out at that moment. Neither could he... That took the last few minutes we had. I later found out that immediately after creating the Vuex.store object we are setting it from localStorage so that why it gets rewritten upon a hard-reload Proctor 'sounds' young and chill.... Just know your stuff and you are good to go... Good Luck :)
  1. 1
    1.) Demo of project
    Times asked 2
  2. 2
    2.) Write code which returns current timestamp and run this in browser or via postman
    Times asked 2
  3. 3
    3.) Add caching to above code
    Times asked 2
  4. 4
    4.) Show code for celery
    Times asked 2
  5. 5
    5.) Autherization vs Authentication, explain via your code.
    Times asked 2
  6. 6
    6.) Vue life cycle hooks
    Times asked 2
  7. 7
    7.) What are these hooks, name them, and what they do
    Times asked 2
  8. 8
    8.) he asked few more things ......
    Times asked 2
Advice: He cooked me first mistake i did was giving demo fast, like in less than 10 minutes. I don't know why he asked to write code in level1 viva. he speaks very little
  1. 1
    Some people said he cooked them but i found him chill (he just don't speak much and will not tell you if your answer is correct or not)
    Times asked 2
  2. 2
    Showed id
    Times asked 3
  3. 3
    Showed demo slowly explaining (took 20-25min)
    Times asked 1
  4. 4
    Asked me explain any api and model
    Times asked 2
  5. 5
    What is Vue life cycle hook and if used any
    Times asked 2
  6. 6
    Thats it over in 30min
    Times asked 2
  7. 7
    I asked for feedback said good u have implemented everything and after it's done make it public
    Times asked 2
Advice: Explain demo slowly switching btw code and demo explaining what piece of code is doing what All the best!
  1. 1
    Level 1 viva..
    Times asked 2
  2. 2
    ID check, then download from portal
    Times asked 2
  3. 3
    Do you know caching?
    Times asked 2
  4. 4
    How do you done caching?
    Times asked 1
  5. 5
    Where is it saving?, how do you know?, when to use it?
    Times asked 2
  6. 6
    Demo 10-15mins.
    Times asked 2
  7. 7
    Demo of backend jobs?
    Times asked 1
  8. 8
    Why you have used redis?, how fast it is?
    Times asked 2
  9. 9
    Why you have used celery?
    Times asked 1
  10. 10
    What Sql alchemy commands you have used (user.query.all() and user.query.filter user.query.join(), etc)
    Times asked 2
  11. 11
    Tell me sql alchemy query to find a user with a user id?
    Times asked 2
  12. 12
    I said something .one() and .all(), he asked why we used this?
    Times asked 2
Advice: Mostly Repeated questions of this procter. All the best!
  1. 1
    Use of Redis Code changes:
    Times asked 1
    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.

    Example

    import redis
    r = redis.Redis(host='localhost', port=6379, db=0)
    r.set('venues', json.dumps(data), ex=30)
    print(r.get('venues'))

    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.

  2. 2
    Change the color of the button(frontend)
    Times asked 1
    Official solution

    SimpleLive UI change: relevant CSS/HTML template kholo — color, margin, flex, bootstrap class. Save + hard refresh.

    Example

    /* button red */
    .btn-primary { background: red; }
    
    /* center navbar item */
    .navbar { justify-content: center; }

    Viva tipDevTools se pehle try, phir file mein permanent change.

Advice: Just be aware of your code which line has the code for which feature. He asks it for sure. Then make sure to be ready to change the minor code changes like I have mentioned. He is chill. Ended by saying all the best for Level 2
  1. 1
    Proctor : level1 91
    Times asked 1
    Official solution

    SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.

  2. 2
    ID and GitHub Collab verification
    Times asked 1
    Official solution

    SimpleGitHub repo open karo: commits, collaborators, README. Examiner check karta hai tumne khud kaam kiya.

    Example

    Settings → Collaborators
    Commits: regular messages, last-day dump nahi.

    Viva tipPrivate repo access pehle de do. Main branch submitted ZIP se match honi chahiye.

  3. 3
    Asked to make live changes (1 in both frontend and backend) :
    Times asked 1
    Official solution

    SimpleLive UI change: relevant CSS/HTML template kholo — color, margin, flex, bootstrap class. Save + hard refresh.

    Example

    /* button red */
    .btn-primary { background: red; }
    
    /* center navbar item */
    .navbar { justify-content: center; }

    Viva tipDevTools se pehle try, phir file mein permanent change.

  4. 4
    can you make a code change such that when a user types /register in the browser address bar, it actually displays the Login page instead of the Registration page?
    Times asked 1
    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 tipBolte-bolte dikhao. Code tab kholna jab poochhein.

  5. 5
    remove the border shadow in login form
    Times asked 1
    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
  6. 6
    What is SQL injection
    Times asked 1
    Official solution

    SimpleUser input concat query. ORM bound params bachata. text()+user mat.

    SQLAlchemy injection still if format SQL.

    Browser + API ke beech extra darwaze: CORS origin allow, HTTPS encrypt transit, CSRF cookie-auto-send attack, XSS HTML inject, SQL injection raw query.

    MAD2 SPA: Vue :8080 Flask :5000 → Flask-CORS. JWT localStorage XSS se chori ho sakta — v-html user input pe avoid. Password Network tab localhost pe dikhega; prod HTTPS, response mein password echo nahi.

    401 unauthenticated, 403 unauthorized, 400 validation. Hash one-way — SHA decrypt nahi hota. Secret key .env, GitHub pe nahi.

    Example

    # bad: f"SELECT * FROM user WHERE name='{name}'"
    User.query.filter_by(name=name)  # good

    Project example: filter_by(name=name) good.

  7. 7
    What is CRUD Applications All done in 20 minutes
    Times asked 1
    Official solution

    SimpleCRUD = Create Read Update Delete. Admin pe ek resource ke 4 ops dikhao.

Advice: Nice and Chill Guy
  1. 1
    Asked whether I would like to do checksum or download from portal
    Times asked 1
    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

  2. 2
    Application Introduction and how it works
    Times asked 1
    Official solution

    Simple30 second: naam, degree, project kya hai, stack (Flask + Jinja + SQLAlchemy + SQLite).

    Example

    Main Priya, IITM BS. MAD1 mein parking/ticket app — Flask backend, Jinja templates, session login, SQLite.
  3. 3
    GET vs POST
    Times asked 2
    Official solution

    SimpleGET data read/show karta hai (idempotent). POST create/submit karta hai (form).

    Example

    @app.route('/login', methods=['GET', 'POST'])
    def login():
        if request.method == 'POST':
            # validate + session
            ...
        return render_template('login.html')
  4. 4
    Asked to paste the link in any other Browser and asked why is it asking for log in again. Asked to show that part of code where I implemented that feature.
    Times asked 1
    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 tipBolte-bolte dikhao. Code tab kholna jab poochhein.

  5. 5
    Change the button color in Company Dashboard
    Times asked 1
    Official solution

    SimpleLive UI change: relevant CSS/HTML template kholo — color, margin, flex, bootstrap class. Save + hard refresh.

    Example

    /* button red */
    .btn-primary { background: red; }
    
    /* center navbar item */
    .navbar { justify-content: center; }

    Viva tipDevTools se pehle try, phir file mein permanent change.

  6. 6
    Write a route for admin to see any unapproved drives
    Times asked 1
    Official solution

    SimpleLive Flask coding: chhota route likho, save, browser/curl se test. Syntax error terminal mein padho.

    Example

    @app.route('/ping')
    def ping():
        return jsonify(ok=True)
    
    @app.route('/even/<int:n>')
    def even(n):
        return 'even' if n % 2 == 0 else 'odd'
  7. 7
    Locate the code where admin can see companies
    Times asked 1
    Official solution

    SimplePehle 1-line definition, phir apne MAD1 project mein file dikhao, phir chhota example.

    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.

Advice: Know your Code Well
  1. 1
    Make a html form in my dashboard that takes 2 inputs.
    Times asked 1
    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
  2. 2
    Write syntax of a sql query.
    Times asked 1
    Official solution

    SimplePehle 1-line definition, phir apne MAD1 project mein file dikhao, phir chhota example.

    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.

  3. 3
    What is request.
    Times asked 1
    Official solution

    SimplePehle 1-line definition, phir apne MAD1 project mein file dikhao, phir chhota example.

    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.

  4. 4
    What is payload.
    Times asked 1
    Official solution

    SimplePayload = dabba ke andar samaan (body). JWT payload beech wala claims (encrypted nahi).

    POST haan JSON. GET query string. JWT payload vs HTTP payload alag context.

    HTTP verbs + status REST ki zabaan. GET read, POST create, PUT replace, PATCH partial, DELETE remove. GET typically no body.

    Status: 200 OK, 201 created, 202 accepted (Celery task), 400 bad input, 401 no/bad token, 403 role nahi, 404 missing, 409 conflict (double book), 500 server.

    AJAX/fetch page reload nahi. SPA poori isi pe. Postman se bina Vue ke API prove karo — examiner pasand.

    Project example: request.get_json() create venue. Token payload user id jwt.io.

  5. 5
    Show that Admin can search for companies and Students 7)Show that user can edit their profile. ( I showed resume submission and viewed the pdf too)
    Times asked 1
    Official solution

    SimpleSearch: form/query param → ilike filter → results template.

    Example

    q = request.args.get('q', '').strip()
    lots = Lot.query.filter(Lot.name.ilike(f'%{q}%')).all()
Advice: Remember the basics. I have not received my score yet so I can't say how my strategy was. I downloaded my code from portal and made a virtual environment upfront instead of doing checksum, proctor was fine with both. Spent majority of my time explaining my code thoroughly when showing my website, showing features, database, how my database updated and stuff. Sir didn't ask questions when I was explaining. After that he asked about the things I questions.
  1. 1
    Asked difference between filter and filter by
    Times asked 1
    Official solution

    Simplefilter_by simple keyword arguments, filter full SQL-style conditions.

    User.query.filter_by(email='a@x.com').first()  # column=value, easy
    User.query.filter(User.age > 18, User.city == 'Delhi').all()  # comparisons, OR, LIKE

    filter_by sirf equals ke liye. Greater-than, LIKE, joins ke liye filter() use karo.

    Example search

    Trek.query.filter(Trek.name.ilike(f'%{q}%')).all()

    Yeh filter_by se nahi hoga.

  2. 2
    What are requests?
    Times asked 1
    Official solution

    SimplePehle 1-line definition, phir apne MAD1 project mein file dikhao, phir chhota example.

    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.

Advice: Level1 91 sir was really patient and helpful. Revise all concepts and you should be fine.
  1. 1
    Show the id
    Times asked 1
    Official solution

    SimpleCamera pe clearly college/IITM ID dikhao — naam aur photo match hone chahiye.

    Viva tipPehle se ID haath mein rakho, glare mat aane do. Iske baad GitHub + project run.

  2. 2
    Download submission from viva workflow site
    Times asked 1
    Official solution

    SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.

  3. 3
    Show the functionality of my website
    Times asked 1
    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 tipBolte-bolte dikhao. Code tab kholna jab poochhein.

  4. 4
    To explain line 10 and 11 of my code
    Times asked 1
    Official solution

    SimpleCode explain formula: input kya aaya → auth/validation → DB change → response/UI.

    Viva tipFunction signature + 3-4 important lines + edge case.

  5. 5
    How to code if I have to change db from instance folder to static folder
    Times asked 1
    Official solution

    Simplestatic/ folder CSS, JS, images. url_for('static', filename=...) se link.

    Example

    <link rel="stylesheet" href="{{ url_for('static', filename='css/app.css') }}">
  6. 6
    Can patient edit the information
    Times asked 1
    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
Advice: Kind, supportive
  1. 1
    What is CDN
    Times asked 1
    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.

  2. 2
    How do you get a user from SQLAchemy query
    Times asked 1
    Official solution

    SimpleCode explain formula: input kya aaya → auth/validation → DB change → response/UI.

    Viva tipFunction signature + 3-4 important lines + edge case.

  3. 3
    What is bootstrap
    Times asked 1
    Official solution

    SimpleBootstrap CSS framework — grid, navbar, buttons jaldi. CDN ya downloaded files.

  1. 1
    - checked features from view rubrics points on portal
    Times asked 1
    Official solution

    SimplePehle 1-line definition, phir apne MAD1 project mein file dikhao, phir chhota example.

    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.

  2. 2
    - explain user class
    Times asked 1
    Official solution

    SimpleCode explain formula: input kya aaya → auth/validation → DB change → response/UI.

    Viva tipFunction signature + 3-4 important lines + edge case.

  3. 3
    - what are http methods
    Times asked 1
    Official solution

    SimpleHTTP verbs REST ke tools. Methods HTTP ke hain, REST unhe convention se use karta hai.

    GET read cacheable. POST create payload. PUT replace. PATCH patch. DELETE remove.

    GET exists bina REST ke bhi — browser address bar.

    HTTP verbs + status REST ki zabaan. GET read, POST create, PUT replace, PATCH partial, DELETE remove. GET typically no body.

    Status: 200 OK, 201 created, 202 accepted (Celery task), 400 bad input, 401 no/bad token, 403 role nahi, 404 missing, 409 conflict (double book), 500 server.

    AJAX/fetch page reload nahi. SPA poori isi pe. Postman se bina Vue ke API prove karo — examiner pasand.

    Example

    GET /api/venues
    POST /api/venues
    PUT /api/venues/1
    DELETE /api/venues/1

    Project example: resources.py methods list. Postman 4-5 calls.

    Viva tipGET typically no body (cacheable). POST/PUT/PATCH haan payload. PUT idempotent, POST nahi.

  4. 4
    - difference between get and post
    Times asked 1
    Official solution

    SimpleGET data read/show karta hai (idempotent). POST create/submit karta hai (form).

    Example

    @app.route('/login', methods=['GET', 'POST'])
    def login():
        if request.method == 'POST':
            # validate + session
            ...
        return render_template('login.html')
  1. 1
    Main focus on configuration and API
    Times asked 1
    Official solution

    SimplePehle 1-line definition, phir apne MAD1 project mein file dikhao, phir chhota example.

    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.

  2. 2
    Asked what can replace dotenv
    Times asked 1
    Official solution

    SimplePehle 1-line definition, phir apne MAD1 project mein file dikhao, phir chhota example.

    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.

  3. 3
    Basic Jinja coding
    Times asked 1
    Official solution

    SimpleJinja2 Flask ka template engine — HTML ke andar {{ }} variables, {% %} logic.

    Example

    {% for lot in lots %}
      <li>{{ lot.name }} — {{ lot.spots }}</li>
    {% else %}
      <p>No lots</p>
    {% endfor %}
  4. 4
    How have I implemented charts
    Times asked 1
    Official solution

    SimpleCode explain formula: input kya aaya → auth/validation → DB change → response/UI.

    Viva tipFunction signature + 3-4 important lines + edge case.

Advice: Focus on config.py and api
  1. 1
    No theory question asked me to code, please go through jinja and flask api end points and how they are made, heard that he asked same question to some other student, also learn your config file well and be ready for coding
    Times asked 1
    Official solution

    SimpleJinja for loop list render karta hai. loop.index, else branch empty list pe.

    Example

    {% for u in users %}
      <tr><td>{{ loop.index }}</td><td>{{ u.email }}</td></tr>
    {% endfor %}
  1. 1
    So first thing was checksum, After that i created the venv setup he clearly asked everything what am i doing why am i doing and all. took 5 mins.
    Times asked 1
    Official solution

    SimpleVirtualenv isolated Python env — project deps system Python ko nahi bigaadte.

    Example

    python -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
  2. 2
    Question 1: what is blueprint and why do we use it.
    Times asked 1
    Official solution

    SimpleBlueprint se app ko modules mein todte ho — auth, admin, user alag files. Scale + clean structure.

    Example

    auth_bp = Blueprint('auth', __name__, url_prefix='/auth')
    
    @auth_bp.route('/login')
    def login(): ...
    
    app.register_blueprint(auth_bp)

    Viva tipViva: 'kyun blueprint?' → separation of concerns, badi app maintainable.

  3. 3
    Question 2: How to write for loop if else in jinja 2?
    Times asked 1
    Official solution

    SimpleJinja for loop list render karta hai. loop.index, else branch empty list pe.

    Example

    {% for u in users %}
      <tr><td>{{ loop.index }}</td><td>{{ u.email }}</td></tr>
    {% endfor %}
  4. 4
    Question 3: Show me a basic working route how u created.
    Times asked 1
    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 tipBolte-bolte dikhao. Code tab kholna jab poochhein.

  5. 5
    Question 4: Open any xyz route and explain it to me what have u done and how have u done it ?
    Times asked 1
    Official solution

    SimpleCode explain formula: input kya aaya → auth/validation → DB change → response/UI.

    Viva tipFunction signature + 3-4 important lines + edge case.

  6. 6
    Question 5: How have you done authentication and how u implemented in the application? E.g. JWT and Flask_Login in my case i did both.
    Times asked 1
    Official solution

    SimpleFlask lightweight Python web framework — routes, request/response, templates. MAD1 ka backend yahi hai.

    Example

    from flask import Flask
    app = Flask(__name__)
    
    @app.route('/')
    def home():
        return 'Hello'

    Viva tipFlask micro hai: jo chahiye (DB, login, forms) khud jodte ho.

  7. 7
    Question 7: Can u explain how to initalize any flask application and i explained him everything?
    Times asked 1
    Official solution

    SimpleFlask lightweight Python web framework — routes, request/response, templates. MAD1 ka backend yahi hai.

    Example

    from flask import Flask
    app = Flask(__name__)
    
    @app.route('/')
    def home():
        return 'Hello'

    Viva tipFlask micro hai: jo chahiye (DB, login, forms) khud jodte ho.

  8. 8
    Note: I asked him for any feedback he said: "U did a great job and i am very impressed with your work."
    Times asked 1
    Official solution

    SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.

Advice: Be calm you can take time and just be honest don't fake anything or try to cheat. He is a very genuine and a good guy.
  1. 1
    Demo of app
    Times asked 1
    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 tipBolte-bolte dikhao. Code tab kholna jab poochhein.

  2. 2
    Asked to demonstrate specific functionalities
    Times asked 1
    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 tipBolte-bolte dikhao. Code tab kholna jab poochhein.

  3. 3
    What's the tech stack used
    Times asked 1
    Official solution

    SimpleStack bolo: Python, Flask, Jinja2, SQLAlchemy, SQLite, HTML/CSS/Bootstrap, maybe Chart.js.

  4. 4
    How to initialise flask
    Times asked 1
    Official solution

    SimpleFlask lightweight Python web framework — routes, request/response, templates. MAD1 ka backend yahi hai.

    Example

    from flask import Flask
    app = Flask(__name__)
    
    @app.route('/')
    def home():
        return 'Hello'

    Viva tipFlask micro hai: jo chahiye (DB, login, forms) khud jodte ho.

  5. 5
    How to use if condition in jinja
    Times asked 1
    Official solution

    SimpleJinja2 Flask ka template engine — HTML ke andar {{ }} variables, {% %} logic.

    Example

    {% for lot in lots %}
      <li>{{ lot.name }} — {{ lot.spots }}</li>
    {% else %}
      <p>No lots</p>
    {% endfor %}
  6. 6
    What's orm and which one have you used
    Times asked 1
    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
  7. 7
    How to get the email of an user in orm if you have their username
    Times asked 1
    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
Advice: just don't panic and be honest
  1. 1
    3)download the zip folder from website or use checksum(just download the file but keep the vs code open before downloading it having all packages installed make sure it is running
    Times asked 2
    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

  2. 2
    just act like you opened the file which you downloaded )
    Times asked 2
    Official solution

    SimplePehle 1-line definition, phir apne MAD1 project mein file dikhao, phir chhota example.

    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.

  3. 3
    4)demonstration
    Times asked 2
    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 tipBolte-bolte dikhao. Code tab kholna jab poochhein.

  4. 4
    5)questions regarding the functionalites
    Times asked 2
    Official solution

    SimplePehle 1-line definition, phir apne MAD1 project mein file dikhao, phir chhota example.

    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.

  5. 5
    7)asked to wirte a app route
    Times asked 2
    Official solution

    SimplePehle 1-line definition, phir apne MAD1 project mein file dikhao, phir chhota example.

    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.

  6. 6
    8)asked to change the frontend part of code
    Times asked 2
    Official solution

    SimpleLive UI change: relevant CSS/HTML template kholo — color, margin, flex, bootstrap class. Save + hard refresh.

    Example

    /* button red */
    .btn-primary { background: red; }
    
    /* center navbar item */
    .navbar { justify-content: center; }

    Viva tipDevTools se pehle try, phir file mein permanent change.

  7. 7
    10)diff b/w vshow and vif
    Times asked 2
    Official solution

    SimpleCode explain formula: input kya aaya → auth/validation → DB change → response/UI.

    Viva tipFunction signature + 3-4 important lines + edge case.

Advice: If he tells you the app looks good, which mean get ready to answer all the forntend part , and be prepared with each line of code. he might ask anything He took viva for 1 hour
  1. 1
    Everything similar from sheet + Difference between beforemount and beforestart
    Times asked 2
    Official solution

    SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.

  1. 1
    3.Export csv and how it works
    Times asked 2
    Official solution

    SimpleClick → Celery → worker CSV → email/download. Columns verify.

    csv module. Auth required. Don't freeze UI — 202 + poll.

    Examiner 2 cheezein: simple desi line + tumhare project ki exact file.

    Pehle ID, GitHub, portal ZIP. Phir run: Redis + Flask + worker + beat + Vue. Feature demo: login, RBAC, cache hit/miss, Celery mail, search.

    Line pe ungli: input kahan, kaunsa check, query/cache/task, JSON/UI. Copilot band. Jo nahi kiya honestly bolo + kaise add karte.

    Example

    @celery.task
    def export_venues_csv(user_id):
        rows = Venue.query.all()
        # csv.writer, mail.send
        return 'ok'

    Project example: Admin export venues. MailHog attach ya file open.

    Viva tipNetwork tab mein job trigger API dikhao, phir MailHog/file open karke columns verify karo.

  2. 2
    4.Can you send daily reminders message using celery?
    Times asked 2
    Official solution

    SimpleLive jobs: Redis, worker, beat, crontab abhi, logs + email/CSV.

    Scheduled vs user-triggered dono dikhao. Missing feature honestly.

    Examiner 2 cheezein: simple desi line + tumhare project ki exact file.

    Pehle ID, GitHub, portal ZIP. Phir run: Redis + Flask + worker + beat + Vue. Feature demo: login, RBAC, cache hit/miss, Celery mail, search.

    Line pe ungli: input kahan, kaunsa check, query/cache/task, JSON/UI. Copilot band. Jo nahi kiya honestly bolo + kaise add karte.

    Suggested flow1) redis
    2) worker
    3) beat
    4) crontab now
    5) logs + MailHog

    Example

    CELERY_BEAT_SCHEDULE = {
      'daily-reminder': {
        'task': 'jobs.daily_reminder',
        'schedule': crontab(hour=18, minute=0),
      },
    }

    Project example: Change schedule current time. MailHog. Export button 202.

  3. 3
    6.explain handling duplicate booking
    Times asked 2
    Official solution

    SimpleDoosri booking same slot: unique constraint + query.exists + 400 message.

    Frontend disable UX. Backend source of truth. Race: two users unique(slot).

    Pehle 1-line definition, phir related MAD2 layer (Vue SFC / Flask route / models.py / tasks.py / Redis).

    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.

    Example

    if Booking.query.filter_by(user_id=uid, slot_id=sid).first():
        return jsonify(message='Already booked'), 400

    Project example: Click book twice. Second 400 Already booked. DB unique.

  4. 4
    7.what is cascade and how do you link that to table
    Times asked 1
    Official solution

    SimpleCascade parent delete pe children pe kya ho: delete-orphan related rows hata deta hai.

    Example

    db.relationship('Spot', cascade='all, delete-orphan')

    Viva tipParking lot delete → uske spots/bookings policy clear bolo.

  5. 5
    9.Open notepad and write a query to book for easy treks (asked me to open models.py and asked to write query)
    Times asked 2
    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)
Advice: Very cool proctor and he will give suggestions then and there.
  1. 1
    Questions asked by the Viva Examiner
    Times asked 2
    Official solution

    SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.

  2. 2
    Implement and explain the code.
    Times asked 2
    Official solution

    SimpleCode explain formula: input kya aaya → auth/validation → DB change → response/UI.

    Viva tipFunction signature + 3-4 important lines + edge case.

  3. 3
    Show backend and frontend implementation.
    Times asked 2
    Official solution

    SimpleDemo 5–7 min ki kahani: saari roles, koi milestone skip nahi, bolte-bolte dikhao.

    Examiner list tick karta hai. Crash ho to panic nahi — terminal error padho.

    Code tab kholna jab poochhein. Extra uncommitted features mat dikhana agar portal ZIP mein nahi.

    Suggested flow1) Register/login user
    2) Admin login — CRUD
    3) Approval/blacklist
    4) Booking/apply + edge case
    5) Search + charts
    6) CSV export / email job
    7) Logout

    Project example: Jo statement/parking/jobs/tickets hai uske user+admin journeys.

    Viva tipBol: 'Yahan overbooking rokta hoon'. Mandatory features pehle, polish baad.

  4. 4
    Explain application execution flow.
    Times asked 2
    Official solution

    SimpleCode explain formula: input kya aaya → auth/validation → DB change → response/UI.

    Viva tipFunction signature + 3-4 important lines + edge case.

  5. 5
    Explain CSV-related code.
    Times asked 2
    Official solution

    SimpleCode explain formula: input kya aaya → auth/validation → DB change → response/UI.

    Viva tipFunction signature + 3-4 important lines + edge case.

  6. 6
    Show email reminders/notifications.
    Times asked 2
    Official solution

    SimpleDemo 5–7 min ki kahani: saari roles, koi milestone skip nahi, bolte-bolte dikhao.

    Examiner list tick karta hai. Crash ho to panic nahi — terminal error padho.

    Code tab kholna jab poochhein. Extra uncommitted features mat dikhana agar portal ZIP mein nahi.

    Suggested flow1) Register/login user
    2) Admin login — CRUD
    3) Approval/blacklist
    4) Booking/apply + edge case
    5) Search + charts
    6) CSV export / email job
    7) Logout

    Project example: Jo statement/parking/jobs/tickets hai uske user+admin journeys.

    Viva tipBol: 'Yahan overbooking rokta hoon'. Mandatory features pehle, polish baad.

  7. 7
    Explain database tables and relationships.
    Times asked 2
    Official solution

    Simpledb.relationship se object graph: lot.spots, booking.user. backref reverse side auto deta hai.

    Example

    spots = db.relationship('Spot', backref='lot', cascade='all, delete-orphan')
Advice: Suggestions/Tips Read your entire code thoroughly. Know your frontend, backend, database, and execution flow. Understand every feature you implemented. Practice basic SQL queries. Be honest if you don't know an answer—the examiner is helpful, but you should know your own code.
  1. 1
    Theory ques: a) v-if vs v-show b) http vs https c) what is ORM d)what is redis and what it does.
    Times asked 1
    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
Advice: He's very patient, polite and supportive. Just know your codebase well.
  1. 1
    Asked to show the functionalities of the app and guided through out.
    Times asked 2
    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 tipBolte-bolte dikhao. Code tab kholna jab poochhein.

  2. 2
    Asked questions on redis, celery
    Times asked 2
    Official solution

    SimpleRedis box hai, Celery us box se kaam uthane wala worker hai — same cheez nahi.

    Redis: store (cache keys) + queue (broker lists).
    Celery: Python library jo tasks define karti hai, .delay() se queue mein daalti hai, worker execute karta hai.

    Dono localhost pe ho sakte hain. Alag Redis DB index use karo. Redis band = cache miss + Celery stuck.

    Example

    Celery: broker_url='redis://localhost:6379/0'
    Cache:  CACHE_REDIS_URL='redis://localhost:6379/1'

    Project example: export_csv.delay(user_id) Flask se. Worker Redis se task uthata hai, CSV+email. Cache alag keys venues.

    Viva tipAgar possible ho to cache db=1, broker db=0 — keys mix nahi hoti.

  3. 3
    SQAlchemy injection 7)Asked to change button Background.
    Times asked 2
    Official solution

    SimpleLive UI change: relevant CSS/HTML template kholo — color, margin, flex, bootstrap class. Save + hard refresh.

    Example

    /* button red */
    .btn-primary { background: red; }
    
    /* center navbar item */
    .navbar { justify-content: center; }

    Viva tipDevTools se pehle try, phir file mein permanent change.

Advice: He is very supportive, will wait patiently for everything and will guide you when u need.
  1. 1
    *Asked me to show my ID card.
    Times asked 2
    Official solution

    SimpleCamera pe clearly college/IITM ID dikhao — naam aur photo match hone chahiye.

    Viva tipPehle se ID haath mein rakho, glare mat aane do. Iske baad GitHub + project run.

  2. 2
    * Checked my GitHub repository.
    Times asked 2
    Official solution

    SimpleGitHub repo open karo: commits, collaborators, README. Examiner check karta hai tumne khud kaam kiya.

    Example

    Settings → Collaborators
    Commits: regular messages, last-day dump nahi.

    Viva tipPrivate repo access pehle de do. Main branch submitted ZIP se match honi chahiye.

  3. 3
    * Asked me to run the project and demonstrate the complete company flow:
    Times asked 2
    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 tipBolte-bolte dikhao. Code tab kholna jab poochhein.

  4. 4
    * Company registration
    Times asked 2
    Official solution

    SimpleRegistration: form → validate unique email → hash password → db.session.add/commit → redirect login.

    Example

    if User.query.filter_by(email=email).first():
        flash('Taken')
    else:
        db.session.add(User(email=email, password=generate_password_hash(pwd)))
        db.session.commit()
  5. 5
    * Admin approval
    Times asked 1
    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 tipBolte-bolte dikhao. Code tab kholna jab poochhein.

  6. 6
    * Company login
    Times asked 1
    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 tipBolte-bolte dikhao. Code tab kholna jab poochhein.

  7. 7
    * Create a drive
    Times asked 1
    Official solution

    SimpleCRUD = Create Read Update Delete. Admin pe ek resource ke 4 ops dikhao.

  8. 8
    * Student applies for the drive
    Times asked 2
    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 tipBolte-bolte dikhao. Code tab kholna jab poochhein.

  9. 9
    * Asked whether I had used *Redis* and *Celery. I started the Worker and Beat and demonstrated the **Daily Reminder* and *Monthly Report* tasks.
    Times asked 1
    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 tipBolte-bolte dikhao. Code tab kholna jab poochhein.

  10. 10
    * Finally, he asked me to write an API to fetch all blacklisted users.
    Times asked 2
    Official solution

    SimpleNaya Flask route: URL, method, auth if needed, query, jsonify. Postman pehle.

    Examiner number/filter change easy rakhna. CORS. Frontend tabhi jab bole.

    Status codes sahi. Password JSON mein nahi.

    Examiner 2 cheezein: simple desi line + tumhare project ki exact file.

    Pehle ID, GitHub, portal ZIP. Phir run: Redis + Flask + worker + beat + Vue. Feature demo: login, RBAC, cache hit/miss, Celery mail, search.

    Line pe ungli: input kahan, kaunsa check, query/cache/task, JSON/UI. Copilot band. Jo nahi kiya honestly bolo + kaise add karte.

    Example

    @app.route('/api/sum', methods=['POST'])
    def sum_num():
        d = request.get_json()
        return jsonify(result=d['a'] + d['b'])

    Project example: resources.py new Resource. Test Thunder. Optional Vue fetch.

  11. 11
    * After that, he said, "You did well. You are eligible for MAD2." and asked me to leave the Google Meet.
    Times asked 2
    Official solution

    SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.

Advice: Overall,Very friendly examiner. He gave enough time to demonstrate everything and the viva felt comfortable.
  1. 1
    # Trekking Management App
    Times asked 2
    Official solution

    SimpleProject overview: problem → roles → main entities → key flows (register, book, admin approve).

    Viva tip1 minute elevator pitch ready rakho, phir demo.

  2. 2
    - Then he asked me to show celery tasks and explain why we have used redis and celery
    Times asked 1
    Official solution

    SimpleRedis box hai, Celery us box se kaam uthane wala worker hai — same cheez nahi.

    Redis: store (cache keys) + queue (broker lists).
    Celery: Python library jo tasks define karti hai, .delay() se queue mein daalti hai, worker execute karta hai.

    Dono localhost pe ho sakte hain. Alag Redis DB index use karo. Redis band = cache miss + Celery stuck.

    Example

    Celery: broker_url='redis://localhost:6379/0'
    Cache:  CACHE_REDIS_URL='redis://localhost:6379/1'

    Project example: export_csv.delay(user_id) Flask se. Worker Redis se task uthata hai, CSV+email. Cache alag keys venues.

    Viva tipAgar possible ho to cache db=1, broker db=0 — keys mix nahi hoti.

  3. 3
    - Also asked me to demonstrate the export csv functionality and then open the csv file
    Times asked 2
    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 tipBolte-bolte dikhao. Code tab kholna jab poochhein.

  4. 4
    - Webhooks lifecycle and how do we use them in an app
    Times asked 2
    Official solution

    SimpleLifecycle = component ki zindagi ke stages. API call tab jab DOM ready ho — mounted.

    created: instance bani, this data, DOM nahi. mounted/onMounted: page pe aa gaya — fetch, Chart.js, setInterval.
    updated: data change ke baad. unmounted: cleanup (clearInterval) warna memory leak.

    Dashboards onMounted isliye: canvas/API tab valid. created mein $el nahi.

    Composition: onMounted(() => {}) setup ke andar.

    Example

    export default {
      async mounted() {
        const r = await fetch('/api/venues')
        this.venues = await r.json()
      }
    }

    Project example: Venues.vue mounted fetch list. Clock component unmounted pe interval clear.

    Viva tipcreated: data setup, DOM nahi. mounted/onMounted: $el mil gaya — fetch yahi. Dashboards isliye onMounted use karti hain.

  5. 5
    - What is a session and localStorage? What's the difference between them?
    Times asked 2
    Official solution

    SimpleMAD1 mein usually session-based auth: login pe session['user_id'], har request pe verify.

    Example

    session['user_id'] = user.id
    uid = session.get('user_id')
    user = User.query.get(uid)

    Viva tipSECRET_KEY set karo warna session insecure. logout pe session.clear().

  6. 6
    - Asked me to show where I had implemented the logic for the trekker to not be able to book treks which had no slots available
    Times asked 2
    Official solution

    SimpleProject overview: problem → roles → main entities → key flows (register, book, admin approve).

    Viva tip1 minute elevator pitch ready rakho, phir demo.

  7. 7
    - Change the color of the sidebar and some buttons
    Times asked 2
    Official solution

    SimpleLive UI change: relevant CSS/HTML template kholo — color, margin, flex, bootstrap class. Save + hard refresh.

    Example

    /* button red */
    .btn-primary { background: red; }
    
    /* center navbar item */
    .navbar { justify-content: center; }

    Viva tipDevTools se pehle try, phir file mein permanent change.

Advice: He was really patient and supportive throughout the viva... helped me resolve some errors i was getting while showing him the export csv functionality... he was patiently waiting for me to complete my setup and whenever i had to search for a particular line in my code... for the celery tasks because I had no past emails to show him he just said, "show me the code and I'll give you the marks based on that"... overall quite a chill proctor 😃
  1. 1
    Show Repo then collaborator
    Times asked 2
    Official solution

    SimpleGitHub repo open karo: commits, collaborators, README. Examiner check karta hai tumne khud kaam kiya.

    Example

    Settings → Collaborators
    Commits: regular messages, last-day dump nahi.

    Viva tipPrivate repo access pehle de do. Main branch submitted ZIP se match honi chahiye.

  2. 2
    Download from portal and run it
    Times asked 1
    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

  3. 3
    For commands, I asked him then used readme file.
    Times asked 2
    Official solution

    SimplePehle 1-line definition, phir apne MAD1 project mein file dikhao, phir chhota example.

    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.

  4. 4
    Run the app
    Times asked 2
    Official solution

    Simplevenv activate → dependencies → DB create/migrate → flask run. Browser pe localhost dikhao.

    Example

    python -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
    flask run
  5. 5
    Register a company
    Times asked 1
    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 tipBolte-bolte dikhao. Code tab kholna jab poochhein.

  6. 6
    Search application as admin
    Times asked 2
    Official solution

    SimpleSearch: form/query param → ilike filter → results template.

    Example

    q = request.args.get('q', '').strip()
    lots = Lot.query.filter(Lot.name.ilike(f'%{q}%')).all()
  7. 7
    Log in as company and Create a drive
    Times asked 2
    Official solution

    SimpleCRUD = Create Read Update Delete. Admin pe ek resource ke 4 ops dikhao.

  8. 8
    Approve the drive
    Times asked 2
    Official solution

    SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.

  9. 9
    Login/register and Apply as a student
    Times asked 2
    Official solution

    Yeh feature demo hai. Account ready rakho, steps bol ke dikhao.

    Role ke hisaab login → action (create/approve/book) → DB/UI pe result → edge case (fail when slots=0 / blacklisted).
    Do browser windows: admin + user. Search/filter alag se dikhao.
    Agar feature nahi hai to sach bolo aur 2 minute mein kaise add karoge (query + template) explain karo.

  10. 10
    Asked about Jwt, but I told him I have used flask-security.
    Times asked 2
    Official solution

    SimpleFlask lightweight Python web framework — routes, request/response, templates. MAD1 ka backend yahi hai.

    Example

    from flask import Flask
    app = Flask(__name__)
    
    @app.route('/')
    def home():
        return 'Hello'

    Viva tipFlask micro hai: jo chahiye (DB, login, forms) khud jodte ho.

  11. 11
    Show mail for admin report, reminder
    Times asked 2
    Official solution

    SimpleDemo 5–7 min ki kahani: saari roles, koi milestone skip nahi, bolte-bolte dikhao.

    Examiner list tick karta hai. Crash ho to panic nahi — terminal error padho.

    Code tab kholna jab poochhein. Extra uncommitted features mat dikhana agar portal ZIP mein nahi.

    Suggested flow1) Register/login user
    2) Admin login — CRUD
    3) Approval/blacklist
    4) Booking/apply + edge case
    5) Search + charts
    6) CSV export / email job
    7) Logout

    Project example: Jo statement/parking/jobs/tickets hai uske user+admin journeys.

    Viva tipBol: 'Yahan overbooking rokta hoon'. Mandatory features pehle, polish baad.

  12. 12
    Then export csv and show in mail
    Times asked 1
    Official solution

    SimpleClick → Celery → worker CSV → email/download. Columns verify.

    csv module. Auth required. Don't freeze UI — 202 + poll.

    Examiner 2 cheezein: simple desi line + tumhare project ki exact file.

    Pehle ID, GitHub, portal ZIP. Phir run: Redis + Flask + worker + beat + Vue. Feature demo: login, RBAC, cache hit/miss, Celery mail, search.

    Line pe ungli: input kahan, kaunsa check, query/cache/task, JSON/UI. Copilot band. Jo nahi kiya honestly bolo + kaise add karte.

    Example

    @celery.task
    def export_venues_csv(user_id):
        rows = Venue.query.all()
        # csv.writer, mail.send
        return 'ok'

    Project example: Admin export venues. MailHog attach ya file open.

    Viva tipNetwork tab mein job trigger API dikhao, phir MailHog/file open karke columns verify karo.

Advice: He was very Chill. All the questions he asked were already in sheet. Time was 6pm but he joined 6:15 bcoz of something, still he was calm and didn't rush me for anything. Gave me time for doing what he asked, like installing the dependencies and all takes time. I was kind of just notifiying him like backend is running now, redis-server is running... Between these installs, there was complete silence, he didn't ask anything and I was just saying things after completing them or when he asked. Be calm, explain everything confidently. All the Best!!
  1. 1
    Github Collaborator
    Times asked 3
    Official solution

    SimpleGitHub repo open karo: commits, collaborators, README. Examiner check karta hai tumne khud kaam kiya.

    Example

    Settings → Collaborators
    Commits: regular messages, last-day dump nahi.

    Viva tipPrivate repo access pehle de do. Main branch submitted ZIP se match honi chahiye.

  2. 2
    I had some issues with setting up the venv. so in the meanwhile he helped me setting up the venv.
    Times asked 2
    Official solution

    SimpleVirtualenv isolated Python env — project deps system Python ko nahi bigaadte.

    Example

    python -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
  3. 3
    He was asking for every particular feature like in the code where have you implemented this. Than asked me to change the colour of the navbar and on the notepad asked me to write a sqlalchemy query. after that he said be ready for level-2
    Times asked 2
    Official solution

    SimpleSQLAlchemy MAD1 ka common ORM. Flask-SQLAlchemy wrapper se db.Model, db.session.

    Example

    user = User(email='a@b.com')
    db.session.add(user)
    db.session.commit()
    users = User.query.filter_by(role='admin').all()
Advice: Know your codebase very well. because he can ask you to explain or show any part of the code of his choice. else He was chill and supportive.
  1. 1
    He asked for demo (He himself told me the flow , like login as company , then approve as admin , ...)
    Times asked 2
    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 tipBolte-bolte dikhao. Code tab kholna jab poochhein.

  2. 2
    Then he asked me to show the code for sending the approval mail (after a company is successfully approved by admin)
    Times asked 2
    Official solution

    SimpleSMTP = Simple Mail Transfer Protocol — email bhejne ka standard. Flask-Mail / smtplib se reminders/reports.

    Example

    from flask_mail import Message
    msg = Message('Subject', recipients=[user.email])
    msg.body = 'Hello'
    mail.send(msg)

    Viva tipViva mein MailHog/inbox dikhao. Port 587 TLS common; local pe MailHog 1025.

  3. 3
    Then he asked many pieces of code like where is this , that etc...
    Times asked 2
    Official solution

    SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.

  4. 4
    Then he asked me ports like what is 400, 401 , 200 , 403 etc....
    Times asked 2
    Official solution

    SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.

  5. 5
    Then he asked me to show the sent mail( he also approves if you show him already sent mails that you've tested and you can show that from your inbox)
    Times asked 2
    Official solution

    SimpleSMTP = Simple Mail Transfer Protocol — email bhejne ka standard. Flask-Mail / smtplib se reminders/reports.

    Example

    from flask_mail import Message
    msg = Message('Subject', recipients=[user.email])
    msg.body = 'Hello'
    mail.send(msg)

    Viva tipViva mein MailHog/inbox dikhao. Port 587 TLS common; local pe MailHog 1025.

  6. 6
    Have you used ai ( I coded the blueprint and routes myself and used ai to refine the code and generate the messages to be send in the mail) and he said ok
    Times asked 2
    Official solution

    SimpleBlueprint se app ko modules mein todte ho — auth, admin, user alag files. Scale + clean structure.

    Example

    auth_bp = Blueprint('auth', __name__, url_prefix='/auth')
    
    @auth_bp.route('/login')
    def login(): ...
    
    app.register_blueprint(auth_bp)

    Viva tipViva: 'kyun blueprint?' → separation of concerns, badi app maintainable.

  7. 7
    He asked me to code the route to display all unapproved drives
    Times asked 2
    Official solution

    SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.

  8. 8
    Then he asked me to change the color and size of a button
    Times asked 2
    Official solution

    SimpleLive UI change: relevant CSS/HTML template kholo — color, margin, flex, bootstrap class. Save + hard refresh.

    Example

    /* button red */
    .btn-primary { background: red; }
    
    /* center navbar item */
    .navbar { justify-content: center; }

    Viva tipDevTools se pehle try, phir file mein permanent change.

  9. 9
    Finaly he asked...
    Times asked 2
    Official solution

    SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.

  10. 10
    What is MVC
    Times asked 3
    Official solution

    SimpleMVC = Model-View-Controller. Code ko 3 hisson mein baant ta hai taaki mix na ho.

    Model: data + DB. models.py — User, Trek, Booking classes.
    View: jo user dekhta hai. templates/*.html + Jinja.
    Controller: beech ka logic. routes / app.py — request lo, model se data, view ko do.

    Example flow (register):
    Browser form POST → Controller register() → User model save → redirect → View dashboard.html

    Draw: Browser → Controller → Model → DB, phir Controller → View → Browser.
    ORM na ho to bhi MVC ho sakta hai — Model raw SQL functions ho sakte hain. Structure matter karta hai, library nahi.
    MVP/MVVM doosri architectures hain; MAD1 mein MVC expected hai.

Advice: He was very nonchalant , he will ask a question and won't ask any cross question until you answer it or directly tell him you don't know... Viva was exactly for 30 minutes One thing that can impress him is , whatever functionality he asks , know where that part of code is , in your project . He won't talk much , but he is not very strict too.... The coding questions are repeated . So make sure to go through the spreadsheet..Btw mine was level 1 He is very patient and waits for you to search your file . Just don't stay silent
  1. 1
    Can a drive be edited after it has been created?
    Times asked 2
    Official solution

    SimplePehle 1-line definition, phir apne MAD1 project mein file dikhao, phir chhota example.

    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.

  2. 2
    What are HTTP status/error codes? like 201, 403 etc.
    Times asked 2
    Official solution

    Simple2xx jeet, 4xx teri galti, 5xx meri (server) galti.

    200 OK, 201 Created, 400 validation, 401 no/invalid token (authentication fail), 403 role (authorization fail), 404 missing, 409 conflict, 500 crash.

    403 vs IntegrityError: 403 permission. Duplicate unique → 400/409, 500 mat chhodo.

    Example

    return jsonify(msg='ok'), 200
    return jsonify(msg='login required'), 401

    Project example: Login fail 401. User admin API 403. Duplicate booking 400.

    Viva tip403 vs IntegrityError: 403 permission, IntegrityError DB constraint (duplicate unique) — 400/409 banao, 500 mat chhodo.

  3. 3
    Are JWT tokens encrypted or encoded? What is their purpose?
    Times asked 1
    Official solution

    SimpleJWT teen tukde ki signed chitthi: header.payload.signature. Padhi ja sakti hai, badli nahi ja sakti.

    Encoded (Base64) + signed, encrypted nahi (JWE alag). Payload mein password mat daalo — koi jwt.io pe dekh lega.

    Login pe server secret se HMAC (HS256). Har API Authorization: Bearer <token>.
    Expiry exp. Change payload → signature fail → 401.

    Session MAD1 server yaad rakhta. JWT MAD2 client rakhta, server stateless-ish.

    Example

    eyJhbGciOiJIUzI1NiJ9.{"sub":1,"role":"admin"}.signature
    # Authorization: Bearer <token>

    Project example: POST /login → token LS. fetch interceptor header. @jwt_required APIs.

    Viva tipAlgo HS256. Secret env var. jwt.io pe payload dikhao, secret public site pe mat paste.

  4. 4
    How do Redis and Celery work together? What are their benefits?
    Times asked 1
    Official solution

    SimpleCode explain formula: input kya aaya → auth/validation → DB change → response/UI.

    Viva tipFunction signature + 3-4 important lines + edge case.

  5. 5
    Remove Actions column from the Registered Companies table in the Admin Dashboard frontend.
    Times asked 2
    Official solution

    SimpleMAD1 frontend usually Jinja templates + HTML/CSS/Bootstrap (+ thoda JS). MAD2 pe Vue ho to clearly bolo.

  6. 6
    Show the scheduler code.
    Times asked 2
    Official solution

    SimpleDemo 5–7 min ki kahani: saari roles, koi milestone skip nahi, bolte-bolte dikhao.

    Examiner list tick karta hai. Crash ho to panic nahi — terminal error padho.

    Code tab kholna jab poochhein. Extra uncommitted features mat dikhana agar portal ZIP mein nahi.

    Suggested flow1) Register/login user
    2) Admin login — CRUD
    3) Approval/blacklist
    4) Booking/apply + edge case
    5) Search + charts
    6) CSV export / email job
    7) Logout

    Project example: Jo statement/parking/jobs/tickets hai uske user+admin journeys.

    Viva tipBol: 'Yahan overbooking rokta hoon'. Mandatory features pehle, polish baad.

  7. 7
    Something related to email sender functionality.
    Times asked 2
    Official solution

    SimpleSMTP = Simple Mail Transfer Protocol — email bhejne ka standard. Flask-Mail / smtplib se reminders/reports.

    Example

    from flask_mail import Message
    msg = Message('Subject', recipients=[user.email])
    msg.body = 'Hello'
    mail.send(msg)

    Viva tipViva mein MailHog/inbox dikhao. Port 587 TLS common; local pe MailHog 1025.

  8. 8
    Can companies change the status of student applications?
    Times asked 2
    Official solution

    SimpleLive UI change: relevant CSS/HTML template kholo — color, margin, flex, bootstrap class. Save + hard refresh.

    Example

    /* button red */
    .btn-primary { background: red; }
    
    /* center navbar item */
    .navbar { justify-content: center; }

    Viva tipDevTools se pehle try, phir file mein permanent change.

  9. 9
    How do you ensure that a student can apply to a drive only once?
    Times asked 2
    Official solution

    SimpleCode explain formula: input kya aaya → auth/validation → DB change → response/UI.

    Viva tipFunction signature + 3-4 important lines + edge case.

  10. 10
    Write a new route to list all blacklisted companies.
    Times asked 2
    Official solution

    SimpleLive Flask coding: chhota route likho, save, browser/curl se test. Syntax error terminal mein padho.

    Example

    @app.route('/ping')
    def ping():
        return jsonify(ok=True)
    
    @app.route('/even/<int:n>')
    def even(n):
        return 'even' if n % 2 == 0 else 'odd'
Advice: Just be chill because he is chill too.
  1. 1
    List of deactivated users
    Times asked 2
    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 tipBolte-bolte dikhao. Code tab kholna jab poochhein.

Advice: Take your time. Explain everything in detail. Show everything in demo. Don't stop talking.
  1. 1
    explain the project
    Times asked 2
    Official solution

    SimpleCode explain formula: input kya aaya → auth/validation → DB change → response/UI.

    Viva tipFunction signature + 3-4 important lines + edge case.

  2. 2
    RBAC how implemented?
    Times asked 2
    Official solution

    SimpleRBAC = Role Based Access Control. Roles (admin/user) se permissions milti hain, har user pe alag list nahi.

    Example

    if current_user.role != 'admin':
        flash('Not allowed')
        return redirect(url_for('user.home'))
  3. 3
    login as company, login as student, create drive, apply as student to drive, export csv(basically any random subset of core requirements)
    Times asked 2
    Official solution

    SimpleClick → Celery → worker CSV → email/download. Columns verify.

    csv module. Auth required. Don't freeze UI — 202 + poll.

    Examiner 2 cheezein: simple desi line + tumhare project ki exact file.

    Pehle ID, GitHub, portal ZIP. Phir run: Redis + Flask + worker + beat + Vue. Feature demo: login, RBAC, cache hit/miss, Celery mail, search.

    Line pe ungli: input kahan, kaunsa check, query/cache/task, JSON/UI. Copilot band. Jo nahi kiya honestly bolo + kaise add karte.

    Example

    @celery.task
    def export_venues_csv(user_id):
        rows = Venue.query.all()
        # csv.writer, mail.send
        return 'ok'

    Project example: Admin export venues. MailHog attach ya file open.

    Viva tipNetwork tab mein job trigger API dikhao, phir MailHog/file open karke columns verify karo.

  4. 4
    Code a route in notepad(I had to display unapproved drives. Wasn't able to do it)
    Times asked 2
    Official solution

    SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.

  5. 5
    How does JWT work? Not a whole lot of questions but pinprick accurate ones.
    Times asked 1
    Official solution

    SimpleCode explain formula: input kya aaya → auth/validation → DB change → response/UI.

    Viva tipFunction signature + 3-4 important lines + edge case.

Advice: He doesn't speak much but I didn't feel he was too strict. Just be confident and if you don't know something, be honest. Don't try to decieve him.
  1. 1
    GitHub repo
    Times asked 3
    Official solution

    SimpleGitHub repo open karo: commits, collaborators, README. Examiner check karta hai tumne khud kaam kiya.

    Example

    Settings → Collaborators
    Commits: regular messages, last-day dump nahi.

    Viva tipPrivate repo access pehle de do. Main branch submitted ZIP se match honi chahiye.

  2. 2
    download start
    Times asked 2
    Official solution

    Simplevenv activate → dependencies → DB create/migrate → flask run. Browser pe localhost dikhao.

    Example

    python -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
    flask run
  3. 3
    explain routes
    Times asked 2
    Official solution

    SimpleRoute URL ko Python function se map karta hai. Decorator @app.route ya blueprint.route.

    Example

    @app.route('/lots', methods=['GET', 'POST'])
    def lots():
        if request.method == 'POST':
            ...
        return render_template('lots.html', lots=Lot.query.all())
  4. 4
    trek register
    Times asked 2
    Official solution

    SimpleProject overview: problem → roles → main entities → key flows (register, book, admin approve).

    Viva tip1 minute elevator pitch ready rakho, phir demo.

  5. 5
    staff making activate deactivate
    Times asked 2
    Official solution

    SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.

  6. 6
    staff login : assign staff
    Times asked 2
    Official solution

    SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.

  7. 7
    user register & book
    Times asked 2
    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 tipBolte-bolte dikhao. Code tab kholna jab poochhein.

  8. 8
    history
    Times asked 2
    Official solution

    SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.

  9. 9
    celery beat worker
    Times asked 2
    Official solution

    SimpleBeat clock hai, Worker haath hai. Clock kaam nahi karti, haath nahi sochte kab.

    Worker: @celery.task execute. Beat: crontab padhke due time pe queue mein daal.
    Sirf worker = scheduled nahi. Sirf beat = queue bhar jaaye, koi run nahi.

    Dono ke saath redis-server. Logs mein 'Sending due task' Beat, 'Task succeeded' Worker.

    Example

    celery -A app.celery worker -l info
    celery -A app.celery beat -l info

    Project example: daily_reminder Beat 18:00. Worker MailHog. Export worker-only (button).

    Viva tipSirf worker = scheduled jobs nahi chalenge. Sirf beat = queue bhar jaaye, koi run nahi karega.

  10. 10
    blacklisted users query
    Times asked 1
    Official solution

    SimpleBlacklist/block: user.status='blocked' check login/booking pe. Temporary flag vs hard delete permanent.

  11. 11
    redis working
    Times asked 2
    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.

    Example

    import redis
    r = redis.Redis(host='localhost', port=6379, db=0)
    r.set('venues', json.dumps(data), ex=30)
    print(r.get('venues'))

    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.

  12. 12
    vue cycles
    Times asked 2
    Official solution

    SimpleVue = UI ka smart assistant. Data badlo, screen khud update. MAD1 Jinja har click pe naya HTML.

    Progressive frontend framework. Components, reactivity, directives.

    MAD2 SPA: ek index.html, Vue Router pages, Flask sirf JSON.

    Fayde: easy, SFC, docs. Vs React: templates HTML-like, course sikhata hai. Vs plain JS: baar-baar DOM mat chhedo.

    Example

    <!-- HelloWorld.vue -->
    <template>
      <h1>{{ msg }}</h1>
    </template>
    <script>
    export default { data() { return { msg: 'Hello' } } }
    </script>

    Project example: Navbar.vue + views (Login, Dashboard). data() / setup() reactive. fetch APIs.

    Viva tipFayde: easy, SFC, reactivity. Vs React: chhota learning curve. Vs plain JS: UI state auto-update.

  13. 13
    Cdn vs cli
    Times asked 3
    Official solution

    SimpleCDN = Vue script tag se, jaise pen drive. CLI/Vite = poori factory (SFC, npm, bundle).

    CDN: no build, chhote apps, exam PC pe Node nahi to bhi chal. Weak: no .vue compile, 3rd-party cache, scale/team.

    CLI/Vite: Single File Components, env, code-split, production dist/. Scalable.

    Examiner 'which + why' — jo use kiya wahi justify, doosra naam rato mat.

    Example

    <!-- CDN -->
    <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
    
    # Vite
    npm run dev
    npm run build

    Project example: CDN: index.html unpkg vue. CLI: package.json, npm run serve / vite.

    Viva tipCDN scalable large teams ke liye weak (no SFC compile, caching 3rd party). Examiner 'which + why' poochta hai — jo use kiya wahi justify karo.

Advice: He is nice just comes late everytime and enjoys the viva and helps you
  1. 1
    check collaboration
    Times asked 2
    Official solution

    SimpleGitHub repo open karo: commits, collaborators, README. Examiner check karta hai tumne khud kaam kiya.

    Example

    Settings → Collaborators
    Commits: regular messages, last-day dump nahi.

    Viva tipPrivate repo access pehle de do. Main branch submitted ZIP se match honi chahiye.

  2. 2
    He told me to login as admin ,then add trek,add staff,change staff
    Times asked 2
    Official solution

    Yeh project-specific feature add/modify hai. 4 layers touch karo: model, route, template, validation.

    1) Data chahiye to models.py mein column/relationship + DB update (ALTER / migrate / create_all).
    2) Route: GET pe form/page, POST pe request.form se save, flash + redirect.
    3) Template: input name=... Jinja se {{ obj.field }} display.
    4) Rule: duplicate, range, role check backend pe.

    Example naya field 'city':

    user.city = db.Column(db.String(50))
    user.city = request.form.get('city')
    <input name='city'>  ...  {{ user.city }}
  3. 3
    login as user ,book any trek then he told me to show code where I manage the overbooking.
    Times asked 2
    Official solution

    SimpleCode dikhao to pehle related file: models → route → template. Flow explain karte hue lines padho.

  4. 4
    Show export CSV and told me to change the bg color of that (export CSV) button.
    Times asked 2
    Official solution

    SimpleLive UI change: relevant CSS/HTML template kholo — color, margin, flex, bootstrap class. Save + hard refresh.

    Example

    /* button red */
    .btn-primary { background: red; }
    
    /* center navbar item */
    .navbar { justify-content: center; }

    Viva tipDevTools se pehle try, phir file mein permanent change.

  5. 5
    then he told me to change backend such that when I run the application, I land to register page not login .
    Times asked 2
    Official solution

    Simplevenv activate → dependencies → DB create/migrate → flask run. Browser pe localhost dikhao.

    Example

    python -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
    flask run
  6. 6
    I did everything correct but I answer one question wrong so he gave me a chance and ask what is orm and it's benefits. That's all in 27 minutes session.
    Times asked 1
    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
Advice: Theory questions are generally same . He only ask about caching,redis,ORM,vue lifecycle hooks. The overall experience was good and don't wry just know your code well and you are good to go . Idk why he told me to do changes in Level 1. All the best.
  1. 1
    GitHub (checked both number of commits and collaborators)
    Times asked 2
    Official solution

    SimpleGitHub repo open karo: commits, collaborators, README. Examiner check karta hai tumne khud kaam kiya.

    Example

    Settings → Collaborators
    Commits: regular messages, last-day dump nahi.

    Viva tipPrivate repo access pehle de do. Main branch submitted ZIP se match honi chahiye.

Advice: Nice proctor. Passed me. Just be calm and explain your code and app well.
  1. 1
    He asked have you yourself used AI, means he got sus.
    Times asked 2
    Official solution

    SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.

  2. 2
    Have you applied all 4 functionalities
    Times asked 2
    Official solution

    SimplePehle 1-line definition, phir apne MAD1 project mein file dikhao, phir chhota example.

    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.

  3. 3
    If a user triggers any API, explain its flow
    Times asked 2
    Official solution

    SimpleNayi booking flow: UI form/button → route POST → login_required → validate seats → insert Booking → commit → redirect/flash.

    Suggested flowBrowser → Flask route → Auth → Business rules → SQLAlchemy → SQLite → Response template/JSON

  4. 4
    Write a new .vue file in notepad
    Times asked 2
    Official solution

    SimpleComponent + route ya template v-if/v-for/fetch. :key dena.

    Clock interval + clear. Add numbers v-model.number. New page routes.js.

    Examiner 2 cheezein: simple desi line + tumhare project ki exact file.

    Pehle ID, GitHub, portal ZIP. Phir run: Redis + Flask + worker + beat + Vue. Feature demo: login, RBAC, cache hit/miss, Celery mail, search.

    Line pe ungli: input kahan, kaunsa check, query/cache/task, JSON/UI. Copilot band. Jo nahi kiya honestly bolo + kaise add karte.

    Example

    <input v-model.number="a"><input v-model.number="b">
    <p>{{ a + b }}</p>

    Project example: views/Foo.vue + path. mounted fetch if API.

  5. 5
    What are vue computed properties.
    Times asked 2
    Official solution

    SimpleVue = UI ka smart assistant. Data badlo, screen khud update. MAD1 Jinja har click pe naya HTML.

    Progressive frontend framework. Components, reactivity, directives.

    MAD2 SPA: ek index.html, Vue Router pages, Flask sirf JSON.

    Fayde: easy, SFC, docs. Vs React: templates HTML-like, course sikhata hai. Vs plain JS: baar-baar DOM mat chhedo.

    Example

    <!-- HelloWorld.vue -->
    <template>
      <h1>{{ msg }}</h1>
    </template>
    <script>
    export default { data() { return { msg: 'Hello' } } }
    </script>

    Project example: Navbar.vue + views (Login, Dashboard). data() / setup() reactive. fetch APIs.

    Viva tipFayde: easy, SFC, reactivity. Vs React: chhota learning curve. Vs plain JS: UI state auto-update.

Advice: Be ready with the coding changes both for frontend and backend cause it's mentioned in the rubrics also. Take most of the time explaining your project.
  1. 1
    RESCHEDULE THE VIVA
    Times asked 2
    Official solution

    SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.

  1. 1
    Whats ORM (I did raw sql i was honest abt it i told ppl said u can go with either aproach he said ok)
    Times asked 2
    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
  2. 2
    did u implement JWT tokens (if not then y and what u did)
    Times asked 2
    Official solution

    SimpleJWT teen tukde ki signed chitthi: header.payload.signature. Padhi ja sakti hai, badli nahi ja sakti.

    Encoded (Base64) + signed, encrypted nahi (JWE alag). Payload mein password mat daalo — koi jwt.io pe dekh lega.

    Login pe server secret se HMAC (HS256). Har API Authorization: Bearer <token>.
    Expiry exp. Change payload → signature fail → 401.

    Session MAD1 server yaad rakhta. JWT MAD2 client rakhta, server stateless-ish.

    Example

    eyJhbGciOiJIUzI1NiJ9.{"sub":1,"role":"admin"}.signature
    # Authorization: Bearer <token>

    Project example: POST /login → token LS. fetch interceptor header. @jwt_required APIs.

    Viva tipAlgo HS256. Secret env var. jwt.io pe payload dikhao, secret public site pe mat paste.

  3. 3
    and smth else idr
    Times asked 2
    Official solution

    SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.

Advice: show ur demo properly i was lucky as he was in a hurry as he had another viva so he left me within 15-20 mins and also so luckily no code making and code changes . but i had rescheduled from thur 530 pm to fri 630 pm. be confident and be honest as much as possible especially in the more important stuff u shd others viva for same proctor its best coz he was in hurry for me so was just wanting me to finish fast so he just said to everything i said
  1. 1
    - Celery task modification
    Times asked 2
    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.

    MAD2 typical jobs: daily reminder mail, monthly HTML report, user-triggered CSV export.

    Web request 200ms hona chahiye. 10,000 emails request thread mein = timeout. Worker alag CPU pe kaam kare.

    Redis broker chahiye. Beat alag process schedule ke liye.

    Example

    @celery.task
    def daily_reminder():
        for u in User.query.filter_by(active=True):
            send_mail(u.email, 'Book something today!')

    Project example: User Export click → 202 Accepted. Worker CSV + email. Daily 6pm Beat reminder.

    Viva tipWorker + Redis bina Beat ke user-triggered chalega. Scheduled jobs ke liye Beat bhi chahiye.

  2. 2
    - Cache and its implementation
    Times asked 2
    Official solution

    SimpleCache = pehli baar hisaab karke copy rakh lo, doosri baar copy dikha do.

    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.

    Browser cache, Flask-Caching, Redis alag layers hain. MAD2 examiner Redis + @cache.cached code dekhta hai.

    Example

    @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.

  3. 3
    - Whether I used AI for the frontend
    Times asked 2
    Official solution

    SimpleMAD1 frontend usually Jinja templates + HTML/CSS/Bootstrap (+ thoda JS). MAD2 pe Vue ho to clearly bolo.

Advice: Guy was chill; please present your app in a good way; That should be sufficient.
  1. 1
    the worst viva i have ever seen in my life :
    Times asked 2
    Official solution

    SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.

  2. 2
    asked to write api routes in notepad (i did 90% code but one small thing i was not able to do)
    Times asked 2
    Official solution

    SimpleLive Flask coding: chhota route likho, save, browser/curl se test. Syntax error terminal mein padho.

    Example

    @app.route('/ping')
    def ping():
        return jsonify(ok=True)
    
    @app.route('/even/<int:n>')
    def even(n):
        return 'even' if n % 2 == 0 else 'odd'
  3. 3
    asked what is jwt where its mentioned
    Times asked 2
    Official solution

    SimpleJWT teen tukde ki signed chitthi: header.payload.signature. Padhi ja sakti hai, badli nahi ja sakti.

    Encoded (Base64) + signed, encrypted nahi (JWE alag). Payload mein password mat daalo — koi jwt.io pe dekh lega.

    Login pe server secret se HMAC (HS256). Har API Authorization: Bearer <token>.
    Expiry exp. Change payload → signature fail → 401.

    Session MAD1 server yaad rakhta. JWT MAD2 client rakhta, server stateless-ish.

    Example

    eyJhbGciOiJIUzI1NiJ9.{"sub":1,"role":"admin"}.signature
    # Authorization: Bearer <token>

    Project example: POST /login → token LS. fetch interceptor header. @jwt_required APIs.

    Viva tipAlgo HS256. Secret env var. jwt.io pe payload dikhao, secret public site pe mat paste.

  4. 4
    told me to write vue codes
    Times asked 2
    Official solution

    SimpleVue = UI ka smart assistant. Data badlo, screen khud update. MAD1 Jinja har click pe naya HTML.

    Progressive frontend framework. Components, reactivity, directives.

    MAD2 SPA: ek index.html, Vue Router pages, Flask sirf JSON.

    Fayde: easy, SFC, docs. Vs React: templates HTML-like, course sikhata hai. Vs plain JS: baar-baar DOM mat chhedo.

    Example

    <!-- HelloWorld.vue -->
    <template>
      <h1>{{ msg }}</h1>
    </template>
    <script>
    export default { data() { return { msg: 'Hello' } } }
    </script>

    Project example: Navbar.vue + views (Login, Dashboard). data() / setup() reactive. fetch APIs.

    Viva tipFayde: easy, SFC, reactivity. Vs React: chhota learning curve. Vs plain JS: UI state auto-update.

  5. 5
    then told me to write flask api
    Times asked 2
    Official solution

    SimpleLive Flask coding: chhota route likho, save, browser/curl se test. Syntax error terminal mein padho.

    Example

    @app.route('/ping')
    def ping():
        return jsonify(ok=True)
    
    @app.route('/even/<int:n>')
    def even(n):
        return 'even' if n % 2 == 0 else 'odd'
  6. 6
    asked what is vue library
    Times asked 2
    Official solution

    SimpleVue = UI ka smart assistant. Data badlo, screen khud update. MAD1 Jinja har click pe naya HTML.

    Progressive frontend framework. Components, reactivity, directives.

    MAD2 SPA: ek index.html, Vue Router pages, Flask sirf JSON.

    Fayde: easy, SFC, docs. Vs React: templates HTML-like, course sikhata hai. Vs plain JS: baar-baar DOM mat chhedo.

    Example

    <!-- HelloWorld.vue -->
    <template>
      <h1>{{ msg }}</h1>
    </template>
    <script>
    export default { data() { return { msg: 'Hello' } } }
    </script>

    Project example: Navbar.vue + views (Login, Dashboard). data() / setup() reactive. fetch APIs.

    Viva tipFayde: easy, SFC, reactivity. Vs React: chhota learning curve. Vs plain JS: UI state auto-update.

  7. 7
    then he said i have done malpractice cause the code was very clean and i had given multi-line comments (i said that i saw in live sessiosn also and read that multi-line commens are good to write) but said i didnt wrote the code by myself and i will be malpracticed
    Times asked 2
    Official solution

    SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.

  8. 8
    took my viva for 1 hour !!!
    Times asked 2
    Official solution

    SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.

  9. 9
    hope i pass (even a E grade is okay this time)
    Times asked 2
    Official solution

    SimplePehle 1-line definition, phir apne MAD1 project mein file dikhao, phir chhota example.

    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.

Advice: prepare well for him... he likes to fail students
  1. 1
    Give demo
    Times asked 2
    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 tipBolte-bolte dikhao. Code tab kholna jab poochhein.

  2. 2
    have you implemented everything/ did you miss anything
    Times asked 2
    Official solution

    SimpleJo miss hai honestly bolo + why (time). Agar examiner maange to quick plan: kahan add karoge.

  3. 3
    what is vue lifecycle
    Times asked 1
    Official solution

    SimpleLifecycle = component ki zindagi ke stages. API call tab jab DOM ready ho — mounted.

    created: instance bani, this data, DOM nahi. mounted/onMounted: page pe aa gaya — fetch, Chart.js, setInterval.
    updated: data change ke baad. unmounted: cleanup (clearInterval) warna memory leak.

    Dashboards onMounted isliye: canvas/API tab valid. created mein $el nahi.

    Composition: onMounted(() => {}) setup ke andar.

    Example

    export default {
      async mounted() {
        const r = await fetch('/api/venues')
        this.venues = await r.json()
      }
    }

    Project example: Venues.vue mounted fetch list. Clock component unmounted pe interval clear.

    Viva tipcreated: data setup, DOM nahi. mounted/onMounted: $el mil gaya — fetch yahi. Dashboards isliye onMounted use karti hain.

  4. 4
    where did you implement Caching
    Times asked 2
    Official solution

    SimpleCache = pehli baar hisaab karke copy rakh lo, doosri baar copy dikha do.

    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.

    Browser cache, Flask-Caching, Redis alag layers hain. MAD2 examiner Redis + @cache.cached code dekhta hai.

    Example

    @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.

Advice: chill proctor, he doesn't talk for a long time or doesn't respond for a long time during viva, idk why, it'll be like you are talking to yourself :), just show everything you implemented and be confident
  1. 1
    edit celery task to schedule periodic tasks to run during viva (ask him if it's okay to edit it before doing anything)
    Times asked 2
    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.

    MAD2 typical jobs: daily reminder mail, monthly HTML report, user-triggered CSV export.

    Web request 200ms hona chahiye. 10,000 emails request thread mein = timeout. Worker alag CPU pe kaam kare.

    Redis broker chahiye. Beat alag process schedule ke liye.

    Example

    @celery.task
    def daily_reminder():
        for u in User.query.filter_by(active=True):
            send_mail(u.email, 'Book something today!')

    Project example: User Export click → 202 Accepted. Worker CSV + email. Daily 6pm Beat reminder.

    Viva tipWorker + Redis bina Beat ke user-triggered chalega. Scheduled jobs ke liye Beat bhi chahiye.

  2. 2
    he asked me to show where i had used RESTful API
    Times asked 2
    Official solution

    SimpleREST: resources + HTTP verbs. GET read, POST create, PUT/PATCH update, DELETE remove. Stateless ideal.

  3. 3
    what is jwt_required wrapper function and admin_required (custom function i made)
    Times asked 2
    Official solution

    SimpleJWT teen tukde ki signed chitthi: header.payload.signature. Padhi ja sakti hai, badli nahi ja sakti.

    Encoded (Base64) + signed, encrypted nahi (JWE alag). Payload mein password mat daalo — koi jwt.io pe dekh lega.

    Login pe server secret se HMAC (HS256). Har API Authorization: Bearer <token>.
    Expiry exp. Change payload → signature fail → 401.

    Session MAD1 server yaad rakhta. JWT MAD2 client rakhta, server stateless-ish.

    Example

    eyJhbGciOiJIUzI1NiJ9.{"sub":1,"role":"admin"}.signature
    # Authorization: Bearer <token>

    Project example: POST /login → token LS. fetch interceptor header. @jwt_required APIs.

    Viva tipAlgo HS256. Secret env var. jwt.io pe payload dikhao, secret public site pe mat paste.

  4. 4
    explain caching and show where you used it. what is query key and query string (i used caching on a search route that's why) that was it. he joined in late for some reason and the viva was done in 20 minutes. i asked him if he had any suggestions and he said "nope, you've implemented everything and presented it well"
    Times asked 1
    Official solution

    SimpleSearch: form/query param → ilike filter → results template.

    Example

    q = request.args.get('q', '').strip()
    lots = Lot.query.filter(Lot.name.ilike(f'%{q}%')).all()
Advice: the key is to be confident while presenting and explaining! and just know basics of things you've done with your code and you'll do well. all the best!
  1. 1
    Show GitHub
    Times asked 5
    Official solution

    SimpleGitHub repo open karo: commits, collaborators, README. Examiner check karta hai tumne khud kaam kiya.

    Example

    Settings → Collaborators
    Commits: regular messages, last-day dump nahi.

    Viva tipPrivate repo access pehle de do. Main branch submitted ZIP se match honi chahiye.

  2. 2
    What percent is generated using AI? Did you mention this in the report?
    Times asked 2
    Official solution

    SimpleHonest raho: kitna AI help. Report mein mention policy follow. Code samajh ke explain karo — AI % se zyada understanding matter.

  3. 3
    Walk me through all the important features
    Times asked 2
    Official solution

    SimplePehle 1-line definition, phir apne MAD1 project mein file dikhao, phir chhota example.

    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.

  4. 4
    What is ORM? Why is it user?
    Times asked 1
    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
  5. 5
    Why we use the library sqlalchemy?
    Times asked 1
    Official solution

    SimpleSQLAlchemy MAD1 ka common ORM. Flask-SQLAlchemy wrapper se db.Model, db.session.

    Example

    user = User(email='a@b.com')
    db.session.add(user)
    db.session.commit()
    users = User.query.filter_by(role='admin').all()
  6. 6
    What is JWT? Did you use this? (I didnot)
    Times asked 2
    Official solution

    SimpleJWT teen tukde ki signed chitthi: header.payload.signature. Padhi ja sakti hai, badli nahi ja sakti.

    Encoded (Base64) + signed, encrypted nahi (JWE alag). Payload mein password mat daalo — koi jwt.io pe dekh lega.

    Login pe server secret se HMAC (HS256). Har API Authorization: Bearer <token>.
    Expiry exp. Change payload → signature fail → 401.

    Session MAD1 server yaad rakhta. JWT MAD2 client rakhta, server stateless-ish.

    Example

    eyJhbGciOiJIUzI1NiJ9.{"sub":1,"role":"admin"}.signature
    # Authorization: Bearer <token>

    Project example: POST /login → token LS. fetch interceptor header. @jwt_required APIs.

    Viva tipAlgo HS256. Secret env var. jwt.io pe payload dikhao, secret public site pe mat paste.

  7. 7
    What did you use? (flask-security token based Authentication and Authorization)
    Times asked 1
    Official solution

    SimpleAuthentication: tu kaun hai? (login). Authorization: tujhe permission hai? (role check).

    Example

    # auth
    if check_password_hash(user.password, pwd):
        session['user_id'] = user.id
    
    # authz
    if user.role != 'admin':
        abort(403)
  8. 8
    Where did you store the token?
    Times asked 2
    Official solution

    SimpleJWT teen tukde ki signed chitthi: header.payload.signature. Padhi ja sakti hai, badli nahi ja sakti.

    Encoded (Base64) + signed, encrypted nahi (JWE alag). Payload mein password mat daalo — koi jwt.io pe dekh lega.

    Login pe server secret se HMAC (HS256). Har API Authorization: Bearer <token>.
    Expiry exp. Change payload → signature fail → 401.

    Session MAD1 server yaad rakhta. JWT MAD2 client rakhta, server stateless-ish.

    Example

    eyJhbGciOiJIUzI1NiJ9.{"sub":1,"role":"admin"}.signature
    # Authorization: Bearer <token>

    Project example: POST /login → token LS. fetch interceptor header. @jwt_required APIs.

    Viva tipAlgo HS256. Secret env var. jwt.io pe payload dikhao, secret public site pe mat paste.

  9. 9
    What will happen when we do a hard reload?
    Times asked 2
    Official solution

    SimplePehle 1-line definition, phir apne MAD1 project mein file dikhao, phir chhota example.

    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.

Advice: I stored my token in the localStorage and then from the localStorage I stored that in a Vuex.store object but according to him I was able to access the page even after reloading even though I was using Vuex.store. He asked me why and I couldnot figure it out at that moment. Neither could he... That took the last few minutes we had. I later found out that immediately after creating the Vuex.store object we are setting it from localStorage so that why it gets rewritten upon a hard-reload Proctor 'sounds' young and chill.... Just know your stuff and you are good to go... Good Luck :)
  1. 1
    show id card
    Times asked 1
    Official solution

    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.

  2. 2
    1.) Demo of project
    Times asked 2
    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 tipBolte-bolte dikhao. Code tab kholna jab poochhein.

  3. 3
    2.) Write code which returns current timestamp and run this in browser or via postman
    Times asked 2
    Official solution

    SimpleLive Flask coding: chhota route likho, save, browser/curl se test. Syntax error terminal mein padho.

    Example

    @app.route('/ping')
    def ping():
        return jsonify(ok=True)
    
    @app.route('/even/<int:n>')
    def even(n):
        return 'even' if n % 2 == 0 else 'odd'
  4. 4
    3.) Add caching to above code
    Times asked 2
    Official solution

    SimpleCache = pehli baar hisaab karke copy rakh lo, doosri baar copy dikha do.

    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.

    Browser cache, Flask-Caching, Redis alag layers hain. MAD2 examiner Redis + @cache.cached code dekhta hai.

    Example

    @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.

  5. 5
    4.) Show code for celery
    Times asked 2
    Official solution

    SimpleCode dikhao to pehle related file: models → route → template. Flow explain karte hue lines padho.

  6. 6
    5.) Autherization vs Authentication, explain via your code.
    Times asked 2
    Official solution

    SimpleAuthentication: tu kaun hai? (login). Authorization: tujhe permission hai? (role check).

    Example

    # auth
    if check_password_hash(user.password, pwd):
        session['user_id'] = user.id
    
    # authz
    if user.role != 'admin':
        abort(403)
  7. 7
    6.) Vue life cycle hooks
    Times asked 2
    Official solution

    SimpleVue = UI ka smart assistant. Data badlo, screen khud update. MAD1 Jinja har click pe naya HTML.

    Progressive frontend framework. Components, reactivity, directives.

    MAD2 SPA: ek index.html, Vue Router pages, Flask sirf JSON.

    Fayde: easy, SFC, docs. Vs React: templates HTML-like, course sikhata hai. Vs plain JS: baar-baar DOM mat chhedo.

    Example

    <!-- HelloWorld.vue -->
    <template>
      <h1>{{ msg }}</h1>
    </template>
    <script>
    export default { data() { return { msg: 'Hello' } } }
    </script>

    Project example: Navbar.vue + views (Login, Dashboard). data() / setup() reactive. fetch APIs.

    Viva tipFayde: easy, SFC, reactivity. Vs React: chhota learning curve. Vs plain JS: UI state auto-update.

  8. 8
    7.) What are these hooks, name them, and what they do
    Times asked 2
    Official solution

    SimplePehle 1-line definition, phir apne MAD1 project mein file dikhao, phir chhota example.

    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.

  9. 9
    8.) he asked few more things ......
    Times asked 2
    Official solution

    SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.

Advice: He cooked me first mistake i did was giving demo fast, like in less than 10 minutes. I don't know why he asked to write code in level1 viva. he speaks very little
  1. 1
    Some people said he cooked them but i found him chill (he just don't speak much and will not tell you if your answer is correct or not)
    Times asked 2
    Official solution

    SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.

  2. 2
    Showed id
    Times asked 3
    Official solution

    SimpleCamera pe clearly college/IITM ID dikhao — naam aur photo match hone chahiye.

    Viva tipPehle se ID haath mein rakho, glare mat aane do. Iske baad GitHub + project run.

  3. 3
    Asked me explain any api and model
    Times asked 2
    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)
  4. 4
    What is Vue life cycle hook and if used any
    Times asked 2
    Official solution

    SimpleVue = UI ka smart assistant. Data badlo, screen khud update. MAD1 Jinja har click pe naya HTML.

    Progressive frontend framework. Components, reactivity, directives.

    MAD2 SPA: ek index.html, Vue Router pages, Flask sirf JSON.

    Fayde: easy, SFC, docs. Vs React: templates HTML-like, course sikhata hai. Vs plain JS: baar-baar DOM mat chhedo.

    Example

    <!-- HelloWorld.vue -->
    <template>
      <h1>{{ msg }}</h1>
    </template>
    <script>
    export default { data() { return { msg: 'Hello' } } }
    </script>

    Project example: Navbar.vue + views (Login, Dashboard). data() / setup() reactive. fetch APIs.

    Viva tipFayde: easy, SFC, reactivity. Vs React: chhota learning curve. Vs plain JS: UI state auto-update.

  5. 5
    Thats it over in 30min
    Times asked 2
    Official solution

    SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.

  6. 6
    I asked for feedback said good u have implemented everything and after it's done make it public
    Times asked 2
    Official solution

    SimpleViva wrap-up hai. Short thanks + confirm submission ZIP latest hai.

Advice: Explain demo slowly switching btw code and demo explaining what piece of code is doing what All the best!
  1. 1
    Level 1 viva..
    Times asked 2
    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.

  2. 2
    ID check, then download from portal
    Times asked 2
    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

  3. 3
    Do you know caching?
    Times asked 2
    Official solution

    SimpleCache = pehli baar hisaab karke copy rakh lo, doosri baar copy dikha do.

    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.

    Browser cache, Flask-Caching, Redis alag layers hain. MAD2 examiner Redis + @cache.cached code dekhta hai.

    Example

    @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.

  4. 4
    Where is it saving?, how do you know?, when to use it?
    Times asked 2
    Official solution

    SimpleUngli rakhe to 4-line formula — panic ki jagah structure.

    1) File ka role: model / Flask route / Vue SFC / celery task / config
    2) Input kahan: JSON, params, token, props, $route
    3) Kya kaam: query, cache, validation, .delay()
    4) Output: jsonify, this.items, email, redirect

    Unknown keyword: import, decorator, if, commit — har ka reason. Bluff mat.

    Suggested flow1) Kaunsi layer?
    2) Input?
    3) DB/cache/task?
    4) Response/UI?

    Project example: Booking POST: jwt, seats check, commit, 201, Vue list push.

    Viva tipUnknown keyword: import, decorator, if, commit — har ka reason. Panic mat.

  5. 5
    Demo 10-15mins.
    Times asked 2
    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 tipBolte-bolte dikhao. Code tab kholna jab poochhein.

  6. 6
    Backend jobs?
    Times asked 1
    Official solution

    SimpleLive jobs: Redis, worker, beat, crontab abhi, logs + email/CSV.

    Scheduled vs user-triggered dono dikhao. Missing feature honestly.

    Examiner 2 cheezein: simple desi line + tumhare project ki exact file.

    Pehle ID, GitHub, portal ZIP. Phir run: Redis + Flask + worker + beat + Vue. Feature demo: login, RBAC, cache hit/miss, Celery mail, search.

    Line pe ungli: input kahan, kaunsa check, query/cache/task, JSON/UI. Copilot band. Jo nahi kiya honestly bolo + kaise add karte.

    Suggested flow1) redis
    2) worker
    3) beat
    4) crontab now
    5) logs + MailHog

    Example

    CELERY_BEAT_SCHEDULE = {
      'daily-reminder': {
        'task': 'jobs.daily_reminder',
        'schedule': crontab(hour=18, minute=0),
      },
    }

    Project example: Change schedule current time. MailHog. Export button 202.

  7. 7
    Two way binding?
    Times asked 1
    Official solution

    SimpleUngli rakhe to 4-line formula — panic ki jagah structure.

    1) File ka role: model / Flask route / Vue SFC / celery task / config
    2) Input kahan: JSON, params, token, props, $route
    3) Kya kaam: query, cache, validation, .delay()
    4) Output: jsonify, this.items, email, redirect

    Unknown keyword: import, decorator, if, commit — har ka reason. Bluff mat.

    Suggested flow1) Kaunsi layer?
    2) Input?
    3) DB/cache/task?
    4) Response/UI?

    Project example: Booking POST: jwt, seats check, commit, 201, Vue list push.

    Viva tipUnknown keyword: import, decorator, if, commit — har ka reason. Panic mat.

  8. 8
    Why you have used redis?, how fast it is?
    Times asked 2
    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.

    Example

    import redis
    r = redis.Redis(host='localhost', port=6379, db=0)
    r.set('venues', json.dumps(data), ex=30)
    print(r.get('venues'))

    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.

  9. 9
    Explain flow of search functionality? (Api call and all)
    Times asked 1
    Official solution

    SimpleSearch: form/query param → ilike filter → results template.

    Example

    q = request.args.get('q', '').strip()
    lots = Lot.query.filter(Lot.name.ilike(f'%{q}%')).all()
  10. 10
    What Sql alchemy commands you have used (user.query.all() and user.query.filter user.query.join(), etc)
    Times asked 2
    Official solution

    SimpleJOIN related tables ek result mein. Inner = match only; left = left side sab + match.

    Example

    db.session.query(Booking, User).join(User).filter(User.id == uid).all()
  11. 11
    Tell me sql alchemy query to find a user with a user id?
    Times asked 2
    Official solution

    SimpleSQLAlchemy MAD1 ka common ORM. Flask-SQLAlchemy wrapper se db.Model, db.session.

    Example

    user = User(email='a@b.com')
    db.session.add(user)
    db.session.commit()
    users = User.query.filter_by(role='admin').all()
  12. 12
    I said something .one() and .all(), he asked why we used this?
    Times asked 2
    Official solution

    SimplePehle 1-line definition, phir apne MAD1 project mein file dikhao, phir chhota example.

    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.

Advice: Mostly Repeated questions of this procter. All the best!
  1. 1
    Show your ID card.
    Times asked 23
    Official solution

    SimpleCamera pe college ID — naam photo match. Identity viva ki pehli gate.

    Pehle se haath mein, glare nahi. Examiner screenshot. Phir GitHub + portal ZIP run.

    Name GitHub/portal se mismatch red flag.

    Examiner 2 cheezein: simple desi line + tumhare project ki exact file.

    Pehle ID, GitHub, portal ZIP. Phir run: Redis + Flask + worker + beat + Vue. Feature demo: login, RBAC, cache hit/miss, Celery mail, search.

    Line pe ungli: input kahan, kaunsa check, query/cache/task, JSON/UI. Copilot band. Jo nahi kiya honestly bolo + kaise add karte.

    Project example: ID dikhao, bolo roll/name, phir screen share repo.

    Viva tipPehle se ID haath mein rakho, glare mat aane do. Examiner screenshot/verify karta hai. Iske baad GitHub + project run.

  2. 2
    Show your GitHub repository and collaborator.
    Times asked 16
    Official solution

    SimpleRepo = evidence tumne kaam kiya: commits, collaborators, README.

    Regular messages, last-day dump nahi. Private access pehle de do. Main branch submitted ZIP se match.

    Collaborator settings. Commit dates.

    Example

    Settings → Collaborators: apna + teammate (agar allowed).
    Commits: regular messages, last-day dump nahi.

    Project example: Settings → Collaborators. git log --oneline. README run steps.

    Viva tipPrivate repo access de do pehle. Main branch latest submitted ZIP se match honi chahiye.

  3. 3
    Download the project from the portal and run it.
    Times asked 6
    Official solution

    SimpleExaminer wohi ZIP chahta hai jo tumne submit kiya, local extra magic nahi.

    Portal download → extract → redis, venv, pip, npm, flask, worker, beat.

    Checksum maange to hash. Uncommitted files mat dikhana.

    Examiner 2 cheezein: simple desi line + tumhare project ki exact file.

    Pehle ID, GitHub, portal ZIP. Phir run: Redis + Flask + worker + beat + Vue. Feature demo: login, RBAC, cache hit/miss, Celery mail, search.

    Line pe ungli: input kahan, kaunsa check, query/cache/task, JSON/UI. Copilot band. Jo nahi kiya honestly bolo + kaise add karte.

    Suggested flow1) ZIP
    2) Extract
    3) Redis + venv + pip
    4) npm/vite
    5) flask + celery worker + beat

    Project example: Submitted zip run. README commands copy.

    Viva tipChecksum maange to hash match karke dikhao. Extra uncommitted files mat dikhana.

  4. 4
    Demonstrate the complete application (the proctor may guide the flow, e.g., Admin → Company/Staff → User/Student).
    Times asked 1
    Official solution

    SimpleDemo 5–7 min ki kahani: saari roles, koi milestone skip nahi, bolte-bolte dikhao.

    Examiner list tick karta hai. Crash ho to panic nahi — terminal error padho.

    Code tab kholna jab poochhein. Extra uncommitted features mat dikhana agar portal ZIP mein nahi.

    Suggested flow1) Register/login user
    2) Admin login — CRUD
    3) Approval/blacklist
    4) Booking/apply + edge case
    5) Search + charts
    6) CSV export / email job
    7) Logout

    Project example: Jo statement/parking/jobs/tickets hai uske user+admin journeys.

    Viva tipBol: 'Yahan overbooking rokta hoon'. Mandatory features pehle, polish baad.

  5. 5
    Show all core functionalities.
    Times asked 5
    Official solution

    SimpleDemo 5–7 min ki kahani: saari roles, koi milestone skip nahi, bolte-bolte dikhao.

    Examiner list tick karta hai. Crash ho to panic nahi — terminal error padho.

    Code tab kholna jab poochhein. Extra uncommitted features mat dikhana agar portal ZIP mein nahi.

    Suggested flow1) Register/login user
    2) Admin login — CRUD
    3) Approval/blacklist
    4) Booking/apply + edge case
    5) Search + charts
    6) CSV export / email job
    7) Logout

    Project example: Jo statement/parking/jobs/tickets hai uske user+admin journeys.

    Viva tipBol: 'Yahan overbooking rokta hoon'. Mandatory features pehle, polish baad.

  6. 6
    Show and explain the code for a specific feature when asked.
    Times asked 1
    Official solution

    SimpleDemo 5–7 min ki kahani: saari roles, koi milestone skip nahi, bolte-bolte dikhao.

    Examiner list tick karta hai. Crash ho to panic nahi — terminal error padho.

    Code tab kholna jab poochhein. Extra uncommitted features mat dikhana agar portal ZIP mein nahi.

    Suggested flow1) Register/login user
    2) Admin login — CRUD
    3) Approval/blacklist
    4) Booking/apply + edge case
    5) Search + charts
    6) CSV export / email job
    7) Logout

    Project example: Jo statement/parking/jobs/tickets hai uske user+admin journeys.

    Viva tipBol: 'Yahan overbooking rokta hoon'. Mandatory features pehle, polish baad.

  7. 7
    Explain where overbooking prevention is implemented.
    Times asked 1
    Official solution

    SimpleSeats_left check + transaction. Race SELECT FOR UPDATE / unique seat.

    qty > available 400. Frontend :max still backend.

    Pehle 1-line definition, phir related MAD2 layer (Vue SFC / Flask route / models.py / tasks.py / Redis).

    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.

    Example

    if show.available < qty:
        abort(400)
    show.available -= qty
    db.session.commit()

    Project example: available=1, two qty=1 — ek fail.

  8. 8
    Explain duplicate booking/application prevention.
    Times asked 1
    Official solution

    SimpleDoosri booking same slot: unique constraint + query.exists + 400 message.

    Frontend disable UX. Backend source of truth. Race: two users unique(slot).

    Pehle 1-line definition, phir related MAD2 layer (Vue SFC / Flask route / models.py / tasks.py / Redis).

    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.

    Example

    if Booking.query.filter_by(user_id=uid, slot_id=sid).first():
        return jsonify(message='Already booked'), 400

    Project example: Click book twice. Second 400 Already booked. DB unique.

  9. 9
    Explain the search functionality.
    Times asked 2
    Official solution

    SimpleSearch demo cases.

    See earlier essay.

    Examiner 2 cheezein: simple desi line + tumhare project ki exact file.

    Pehle ID, GitHub, portal ZIP. Phir run: Redis + Flask + worker + beat + Vue. Feature demo: login, RBAC, cache hit/miss, Celery mail, search.

    Line pe ungli: input kahan, kaunsa check, query/cache/task, JSON/UI. Copilot band. Jo nahi kiya honestly bolo + kaise add karte.

    Example

    q = request.args.get('q', '').strip()
    items = Venue.query.filter(Venue.name.ilike(f'%{q}%')).all()
    return jsonify([v.serialize() for v in items])

    Project example: UI + API.

    Viva tipEmpty search, no-match, case-insensitive (ilike) teen cases dikhao.

  10. 10
    Demonstrate CSV export and open the generated file.
    Times asked 1
    Official solution

    SimpleClick → Celery → worker CSV → email/download. Columns verify.

    csv module. Auth required. Don't freeze UI — 202 + poll.

    Examiner 2 cheezein: simple desi line + tumhare project ki exact file.

    Pehle ID, GitHub, portal ZIP. Phir run: Redis + Flask + worker + beat + Vue. Feature demo: login, RBAC, cache hit/miss, Celery mail, search.

    Line pe ungli: input kahan, kaunsa check, query/cache/task, JSON/UI. Copilot band. Jo nahi kiya honestly bolo + kaise add karte.

    Example

    @celery.task
    def export_venues_csv(user_id):
        rows = Venue.query.all()
        # csv.writer, mail.send
        return 'ok'

    Project example: Admin export venues. MailHog attach ya file open.

    Viva tipNetwork tab mein job trigger API dikhao, phir MailHog/file open karke columns verify karo.

  11. 11
    Demonstrate email reminders/monthly reports.
    Times asked 1
    Official solution

    SimpleLive jobs: Redis, worker, beat, crontab abhi, logs + email/CSV.

    Scheduled vs user-triggered dono dikhao. Missing feature honestly.

    Examiner 2 cheezein: simple desi line + tumhare project ki exact file.

    Pehle ID, GitHub, portal ZIP. Phir run: Redis + Flask + worker + beat + Vue. Feature demo: login, RBAC, cache hit/miss, Celery mail, search.

    Line pe ungli: input kahan, kaunsa check, query/cache/task, JSON/UI. Copilot band. Jo nahi kiya honestly bolo + kaise add karte.

    Suggested flow1) redis
    2) worker
    3) beat
    4) crontab now
    5) logs + MailHog

    Example

    CELERY_BEAT_SCHEDULE = {
      'daily-reminder': {
        'task': 'jobs.daily_reminder',
        'schedule': crontab(hour=18, minute=0),
      },
    }

    Project example: Change schedule current time. MailHog. Export button 202.

  12. 12
    Explain where the email sending logic is implemented.
    Times asked 1
    Official solution

    SimpleFlask-Mail SMTP Celery. Templates HTML. Verify MailHog/logs.

    Dynamic render_template user=stats.

    Flask-Mail / SMTP se mail. Local MailHog fake server: SMTP 1025, UI 8025 — internet nahi, viva safe.

    Asli send Celery task mein, request thread mein nahi. Beat 6pm reminder, export ke baad CSV attach optional.

    MAIL_SERVER localhost demo. Gmail SMTP student account pe block common. Body mein user name personalization examiner dekhta hai.

    Project example: tasks send + reminder.html.

    Project example: tasks send + reminder.html.

  13. 13
    Show how Celery workers/schedulers are configured.
    Times asked 1
    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.

    MAD2 typical jobs: daily reminder mail, monthly HTML report, user-triggered CSV export.

    Web request 200ms hona chahiye. 10,000 emails request thread mein = timeout. Worker alag CPU pe kaam kare.

    Redis broker chahiye. Beat alag process schedule ke liye.

    Example

    @celery.task
    def daily_reminder():
        for u in User.query.filter_by(active=True):
            send_mail(u.email, 'Book something today!')

    Project example: User Export click → 202 Accepted. Worker CSV + email. Daily 6pm Beat reminder.

    Viva tipWorker + Redis bina Beat ke user-triggered chalega. Scheduled jobs ke liye Beat bhi chahiye.

  14. 14
    Show where backend jobs are implemented.
    Times asked 1
    Official solution

    SimpleLive jobs: Redis, worker, beat, crontab abhi, logs + email/CSV.

    Scheduled vs user-triggered dono dikhao. Missing feature honestly.

    Examiner 2 cheezein: simple desi line + tumhare project ki exact file.

    Pehle ID, GitHub, portal ZIP. Phir run: Redis + Flask + worker + beat + Vue. Feature demo: login, RBAC, cache hit/miss, Celery mail, search.

    Line pe ungli: input kahan, kaunsa check, query/cache/task, JSON/UI. Copilot band. Jo nahi kiya honestly bolo + kaise add karte.

    Suggested flow1) redis
    2) worker
    3) beat
    4) crontab now
    5) logs + MailHog

    Example

    CELERY_BEAT_SCHEDULE = {
      'daily-reminder': {
        'task': 'jobs.daily_reminder',
        'schedule': crontab(hour=18, minute=0),
      },
    }

    Project example: Change schedule current time. MailHog. Export button 202.

  15. 15
    Show where caching is implemented.
    Times asked 6
    Official solution

    SimpleDecorator + Redis ping + invalidation line + miss/hit demo idea.

    Kaunsi routes, timeout, key_prefix, query_string. POST pe nahi.

    print after set sirf miss. Timeout chhota karke expiry.

    Redis in-memory key-value store hai — fridge pe sticky note, poori kitchen (SQL database) har baar mat kholo.

    MAD2 mein Redis do kaam: (1) cache — same venues/shows/dashboard JSON baar-baar DB se nahi (2) Celery broker — Flask task queue mein daalta hai, worker uthata hai.

    Flow: cache.get(key) → hit pe return, miss pe SQLAlchemy + SET with timeout. Admin write ke baad cache.delete, warna stale list.

    Source of truth database hi hai. Redis crash/band = cache miss (app chalni chahiye) + queue ruk sakti hai. Important bookings sirf Redis mein mat rakho.

    Alag: Redis ≠ Memcached (Celery broker nahi). Redis ≠ localStorage (woh browser). redis-cli ping → PONG viva proof.

    Project example: resources list GET cached. create_venue delete key.

  16. 16
    Show where JWT/Flask-Security authentication is implemented.
    Times asked 1
    Official solution

    Simplecreate_access_token, @jwt_required, frontend header. Show where JWT/Flask-Security.

    Open three places.

    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: auth.py resources login.vue.

  17. 17
    Write a SQLAlchemy query to retrieve: A user by ID. All blacklisted users/companies/staff. All unapproved drives. Easy treks (project-specific filtering).
    Times asked 1
    Official solution

    Simpleget id, filter blacklisted, unapproved, easy flag. Same Query API. Write SQLAlchemy query retrieve user by id blacklisted unapproved easy treks.

    db.session.get(User,id) SQLA2.

    Pehle 1-line definition, phir related MAD2 layer (Vue SFC / Flask route / models.py / tasks.py / Redis).

    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.

    Example

    User.query.get(id)
    User.query.filter_by(blacklisted=True)
    Drive.query.filter_by(approved=False)

    Project example: flask shell.

  18. 18
    Write a new API route (e.g., display unapproved drives).
    Times asked 1
    Official solution

    SimpleNaya Flask route: URL, method, auth if needed, query, jsonify. Postman pehle.

    Examiner number/filter change easy rakhna. CORS. Frontend tabhi jab bole.

    Status codes sahi. Password JSON mein nahi.

    Examiner 2 cheezein: simple desi line + tumhare project ki exact file.

    Pehle ID, GitHub, portal ZIP. Phir run: Redis + Flask + worker + beat + Vue. Feature demo: login, RBAC, cache hit/miss, Celery mail, search.

    Line pe ungli: input kahan, kaunsa check, query/cache/task, JSON/UI. Copilot band. Jo nahi kiya honestly bolo + kaise add karte.

    Example

    @app.route('/api/sum', methods=['POST'])
    def sum_num():
        d = request.get_json()
        return jsonify(result=d['a'] + d['b'])

    Project example: resources.py new Resource. Test Thunder. Optional Vue fetch.

  19. 19
    Modify the Celery scheduler.
    Times asked 1
    Official solution

    SimpleEdit beat dict, restart beat, log Sending due task.

    Same as live_celery.

    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: config.py.

  20. 20
    Change the application's default landing page (e.g., Register instead of Login).
    Times asked 1
    Official solution

    Simplerouter default Register instead of Login. Flask / send_file index. Change default landing page.

    path: '/' component Register.

    Pehle 1-line definition, phir related MAD2 layer (Vue SFC / Flask route / models.py / tasks.py / Redis).

    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: routes.js.

    Project example: routes.js.

  21. 21
    Change the color of: Navbar Sidebar Buttons Export CSV button
    Times asked 1
    Official solution

    SimpleLive CSS/Vue: sabse chhota change jo dikhe. Logic/API mat todo unless poochhein.

    Inspect element se class dhoondo. btn-success, navbar bottom fixed, center flex.

    Save, refresh, dikhao. Break mat karo layout poora.

    Example

    <button class="btn btn-success">Login</button>
    nav { position: fixed; bottom: 0; width: 100%; }
    .wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; }

    Project example: Jo button/navbar poocha usi file (Navbar.vue / App.vue / css).

    Viva tipDevTools se element inspect. Logic/API mat todo unless poochhein.

  22. 22
    What are Vue lifecycle hooks?
    Times asked 11
    Official solution

    SimpleLifecycle = component ki zindagi ke stages. API call tab jab DOM ready ho — mounted.

    created: instance bani, this data, DOM nahi. mounted/onMounted: page pe aa gaya — fetch, Chart.js, setInterval.
    updated: data change ke baad. unmounted: cleanup (clearInterval) warna memory leak.

    Dashboards onMounted isliye: canvas/API tab valid. created mein $el nahi.

    Composition: onMounted(() => {}) setup ke andar.

    Example

    export default {
      async mounted() {
        const r = await fetch('/api/venues')
        this.venues = await r.json()
      }
    }

    Project example: Venues.vue mounted fetch list. Clock component unmounted pe interval clear.

    Viva tipcreated: data setup, DOM nahi. mounted/onMounted: $el mil gaya — fetch yahi. Dashboards isliye onMounted use karti hain.

  23. 23
    Explain the lifecycle hooks you used.
    Times asked 1
    Official solution

    SimpleLifecycle = component ki zindagi ke stages. API call tab jab DOM ready ho — mounted.

    created: instance bani, this data, DOM nahi. mounted/onMounted: page pe aa gaya — fetch, Chart.js, setInterval.
    updated: data change ke baad. unmounted: cleanup (clearInterval) warna memory leak.

    Dashboards onMounted isliye: canvas/API tab valid. created mein $el nahi.

    Composition: onMounted(() => {}) setup ke andar.

    Example

    export default {
      async mounted() {
        const r = await fetch('/api/venues')
        this.venues = await r.json()
      }
    }

    Project example: Venues.vue mounted fetch list. Clock component unmounted pe interval clear.

    Viva tipcreated: data setup, DOM nahi. mounted/onMounted: $el mil gaya — fetch yahi. Dashboards isliye onMounted use karti hain.

  24. 24
    Difference between created and mounted.
    Times asked 1
    Official solution

    Simplecreated soch, mounted dikhai de. API/chart ke liye mounted.

    created: reactive data setup. mounted: DOM insert. beforeUnmount cleanup.

    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.

    Project example: created mein token read localStorage. mounted mein fetch with that token.

  25. 25
    What is two-way binding?
    Times asked 2
    Official solution

    SimpleTwo-way = UI aur data sync. Vue mein v-model. One-way mustache/v-bind.

    Parent→child props one-way. Child change emit se. v-model on component = prop + emit update.

    Pehle 1-line definition, phir related MAD2 layer (Vue SFC / Flask route / models.py / tasks.py / Redis).

    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: Booking qty input v-model. Seats left sirf {{ available }}.

  26. 26
    Difference between v-if and v-show.
    Times asked 10
    Official solution

    Simplev-if ghar se nikaal deta hai (DOM se). v-show sirf light band karta hai (display:none).

    v-if false → element exist hi nahi — costly create/destroy, lekin secret HTML DOM mein nahi.
    v-show → hamesha DOM, CSS hide, toggle tez.

    Rare / permission UI: v-if (admin panel). Dropdown bar-bar: v-show.

    : shorthand v-bind ka, v-if ka nahi.

    Example

    <div v-if="isAdmin">Admin panel</div>
    <div v-show="open">Dropdown</div>

    Project example: Admin links v-if="role==='admin'". FAQ accordion v-show="open".

    Viva tipSecurity ke liye sirf v-if kaafi nahi — API 403 bhi chahiye.

  27. 27
    Difference between Vue CLI and Vue CDN.
    Times asked 5
    Official solution

    SimpleCDN = Vue script tag se, jaise pen drive. CLI/Vite = poori factory (SFC, npm, bundle).

    CDN: no build, chhote apps, exam PC pe Node nahi to bhi chal. Weak: no .vue compile, 3rd-party cache, scale/team.

    CLI/Vite: Single File Components, env, code-split, production dist/. Scalable.

    Examiner 'which + why' — jo use kiya wahi justify, doosra naam rato mat.

    Example

    <!-- CDN -->
    <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
    
    # Vite
    npm run dev
    npm run build

    Project example: CDN: index.html unpkg vue. CLI: package.json, npm run serve / vite.

    Viva tipCDN scalable large teams ke liye weak (no SFC compile, caching 3rd party). Examiner 'which + why' poochta hai — jo use kiya wahi justify karo.

  28. 28
    What is v-model?
    Times asked 4
    Official solution

    Simplev-model do tarfa glue: input likho to data, data badlo to input.

    Shorthand :value + @input. Forms ke liye. Display ke liye {{ }} / v-bind kaafi.

    v-model.number number input. checkbox boolean. select string.

    Directives Vue ke special attributes hain — HTML ko superpower: v-if/v-show, v-for, v-bind (:), v-on (@), v-model.

    v-if DOM se hataata/jodta. v-show sirf CSS display. Rare/permission: v-if. Bar-bar toggle: v-show. v-model two-way form. v-bind one-way JS→attribute.

    :key v-for pe zaroori warna Vue galat reuse. v-html XSS. Secret UI ke liye sirf v-if kaafi nahi — API 403 bhi.

    MAD1 Jinja server HTML. MAD2 yeh directives browser mein reactive.

    Example

    <input v-model="email">
    <!-- same as -->
    <input :value="email" @input="email = $event.target.value">

    Project example: Login email/password v-model, submit pe JSON POST.

  29. 29
    Difference between Authentication and Authorization.
    Times asked 20
    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.

  30. 30
    How does JWT work?
    Times asked 1
    Official solution

    SimpleIssue, store, send, verify signature+exp, identity=sub.

    Invalid 401. Role claim extra. Refresh optional — most student apps nahi.

    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: Walk one request Network.

  31. 31
    Are JWT tokens encoded or encrypted?
    Times asked 1
    Official solution

    SimpleJWT encoded+signed, typically not encrypted. Payload readable.

    JWE encrypted alag. Don't put secrets in payload.

    Pehle 1-line definition, phir related MAD2 layer (Vue SFC / Flask route / models.py / tasks.py / Redis).

    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: jwt.io decode without secret shows claims.

  32. 32
    What is the purpose of JWT?
    Times asked 1
    Official solution

    SimpleStateless auth APIs. Identity+claims bina server session store.

    SPA/mobile. Revoke harder than session.

    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: Why token not session: ports CORS scale.

  33. 33
    What is Flask-Security?
    Times asked 1
    Official solution

    SimpleFlask-Security-Too: login, roles, hash, token, UserDatastore. Mixins models pe.

    create_user, add_role, hash_password. JWT-extended alternative. Jo use kiya import dikhao.

    Flask Python micro web framework. Route decorator URL → function. MAD2 mein JSON API: request.get_json(), jsonify, JWT.

    WSGI: server (Werkzeug) app ko call. if __name__ == '__main__' sirf direct run. Factory create_app() test/celery ke liye.

    Blueprint/resources folders. @app.route vs MethodView. Debug=True viva local, prod nahi. CORS alag port Vue ke liye.

    Example

    user_datastore = SQLAlchemyUserDatastore(db, User, Role)
    security = Security(app, user_datastore)

    Project example: __init__ Security(app, user_datastore). User(UserMixin).

  34. 34
    How do Redis and Celery work together?
    Times asked 1
    Official solution

    SimpleRedis box hai, Celery us box se kaam uthane wala worker hai — same cheez nahi.

    Redis: store (cache keys) + queue (broker lists).
    Celery: Python library jo tasks define karti hai, .delay() se queue mein daalti hai, worker execute karta hai.

    Dono localhost pe ho sakte hain. Alag Redis DB index use karo. Redis band = cache miss + Celery stuck.

    Example

    Celery: broker_url='redis://localhost:6379/0'
    Cache:  CACHE_REDIS_URL='redis://localhost:6379/1'

    Project example: export_csv.delay(user_id) Flask se. Worker Redis se task uthata hai, CSV+email. Cache alag keys venues.

    Viva tipAgar possible ho to cache db=1, broker db=0 — keys mix nahi hoti.

  35. 35
    What is ORM?
    Times asked 49
    Official solution

    SimpleORM = translator. Python object bolo, woh SQL mein baat kare.

    Object Relational Mapper. Class User ↔ table user. Raw SQL kam.

    SQLAlchemy MAD1/MAD2. Fayde: portable SQLite→Postgres, relationships, parameterized queries (injection kam).
    Nuksaan: N+1, hidden SQL, complex reports pe raw better.

    Direct sqlite3 se SQLAlchemy isliye: models, switch DB, safer queries.

    Example

    class User(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        email = db.Column(db.String(128), unique=True)
    User.query.filter_by(email='a@b.com').first()

    Project example: models.py db.Model. resources User.query.filter_by. Koi f-string SQL nahi.

    Viva tipFayde: safe-ish, portable (SQLite→Postgres). Nuksaan: complex queries, N+1, leaky abstractions. Direct SQLite se SQLAlchemy isliye: models + injection protection + switch DB.

  36. 36
    Why do we use SQLAlchemy?
    Times asked 2
    Official solution

    SimpleModels relationships portable injection-safer than string SQL.

    Why not directly sqlite3.

    ORM objects ko tables se map karta hai — raw SQL kam. SQLAlchemy MAD2 default.

    class User(db.Model) + Column + relationship. query.filter_by / db.session.get. Fayda: portable SQLite→Postgres, injection se safer. Nuksaan: N+1, complex SQL.

    SQLite file, zero server — course friendly. Postgres scale. Relationships: FK, backref, lazy/joinedload, cascade on delete. Constraints unique/not null integrity.

    Bookings source of truth DB, Redis cache copy.

    Project example: User.query vs cursor.execute f-string.

  37. 37
    Explain SQLAlchemy queries (.all(), .filter(), .join(), .one()).
    Times asked 1
    Official solution

    Simple.all list .first one .get(id) .filter .join .one exactly one else error .paginate.

    Explain SQLAlchemy queries.

    ORM objects ko tables se map karta hai — raw SQL kam. SQLAlchemy MAD2 default.

    class User(db.Model) + Column + relationship. query.filter_by / db.session.get. Fayda: portable SQLite→Postgres, injection se safer. Nuksaan: N+1, complex SQL.

    SQLite file, zero server — course friendly. Postgres scale. Relationships: FK, backref, lazy/joinedload, cascade on delete. Constraints unique/not null integrity.

    Bookings source of truth DB, Redis cache copy.

    Project example: Open a query line.

  38. 38
    What is SQLAlchemy Injection?
    Times asked 1
    Official solution

    SimpleORM not magic if raw SQL. Use bound params.

    What is SQLAlchemy injection.

    Pehle 1-line definition, phir related MAD2 layer (Vue SFC / Flask route / models.py / tasks.py / Redis).

    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: Grep text( in code should be none.

    Project example: Grep text( in code should be none.

  39. 39
    What is cascade?
    Times asked 1
    Official solution

    SimpleCASCADE = parent gaya to bacche bhi. Restrict = pehle bacche sambhalo.

    ON DELETE CASCADE SQL. SQLAlchemy cascade='all, delete-orphan' collection se orphans.
    Opposite auto nahi — child delete se parent nahi marata.

    Venue delete: bookings restrict (safer viva) ya cascade+cancel policy. Examiner design poochta hai.

    ON UPDATE CASCADE PK change — rare. SET NULL, RESTRICT bhi options.

    Example

    shows = db.relationship('Show', cascade='all, delete-orphan', back_populates='venue')

    Project example: Show belongs Venue delete-orphan. Booking venue pe restrict — 'reassign first'.

    Viva tipVenue delete pe bookings: restrict (mat delete) ya cascade+refund policy. Examiner design poochta hai. Cascade UPDATE bhi hota hai (PK change) — rare.

  40. 40
    How are tables related?
    Times asked 1
    Official solution

    SimpleUngli rakhe to 4-line formula — panic ki jagah structure.

    1) File ka role: model / Flask route / Vue SFC / celery task / config
    2) Input kahan: JSON, params, token, props, $route
    3) Kya kaam: query, cache, validation, .delay()
    4) Output: jsonify, this.items, email, redirect

    Unknown keyword: import, decorator, if, commit — har ka reason. Bluff mat.

    Suggested flow1) Kaunsi layer?
    2) Input?
    3) DB/cache/task?
    4) Response/UI?

    Project example: Booking POST: jwt, seats check, commit, 201, Vue list push.

    Viva tipUnknown keyword: import, decorator, if, commit — har ka reason. Panic mat.

  41. 41
    Explain lazy loading.
    Times asked 3
    Official solution

    SimpleLazy = zarurat pe load. Relationship default extra query. Vue route import() code-split.

    lazy='dynamic' query object. noload mat laao. Fast first paint.

    ORM objects ko tables se map karta hai — raw SQL kam. SQLAlchemy MAD2 default.

    class User(db.Model) + Column + relationship. query.filter_by / db.session.get. Fayda: portable SQLite→Postgres, injection se safer. Nuksaan: N+1, complex SQL.

    SQLite file, zero server — course friendly. Postgres scale. Relationships: FK, backref, lazy/joinedload, cascade on delete. Constraints unique/not null integrity.

    Bookings source of truth DB, Redis cache copy.

    Project example: user.bookings access pe query. Dashboard joinedload instead.

  42. 42
    What is caching?
    Times asked 23
    Official solution

    SimpleCache = pehli baar hisaab karke copy rakh lo, doosri baar copy dikha do.

    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.

    Browser cache, Flask-Caching, Redis alag layers hain. MAD2 examiner Redis + @cache.cached code dekhta hai.

    Example

    @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.

  43. 43
    Why is caching used?
    Times asked 2
    Official solution

    SimpleCache isliye taaki 100 users same dashboard pe DB ko 100 baar na maror dein.

    Problem: repeated reads, slow page, extra load. Cache seconds ke liye snapshot deta hai.

    Nahi use karna: har second badalne wala live stock, user-private secret data bina soch ke (key mein user_id hona chahiye).

    Memoization caching ka subset hai (function args). HTTP 304 / browser cache alag layer.

    Redis in-memory key-value store hai — fridge pe sticky note, poori kitchen (SQL database) har baar mat kholo.

    MAD2 mein Redis do kaam: (1) cache — same venues/shows/dashboard JSON baar-baar DB se nahi (2) Celery broker — Flask task queue mein daalta hai, worker uthata hai.

    Flow: cache.get(key) → hit pe return, miss pe SQLAlchemy + SET with timeout. Admin write ke baad cache.delete, warna stale list.

    Source of truth database hi hai. Redis crash/band = cache miss (app chalni chahiye) + queue ruk sakti hai. Important bookings sirf Redis mein mat rakho.

    Alag: Redis ≠ Memcached (Celery broker nahi). Redis ≠ localStorage (woh browser). redis-cli ping → PONG viva proof.

    Project example: Shows list har user dekhta hai — perfect cache. Booking POST cache nahi — har baar write.

  44. 44
    Where have you implemented caching?
    Times asked 7
    Official solution

    SimpleGET lists/stats @cache.cached. Mutations pe delete. CACHE_TYPE Redis.

    Why each route: public repeated reads. User-private careful.

    Redis in-memory key-value store hai — fridge pe sticky note, poori kitchen (SQL database) har baar mat kholo.

    MAD2 mein Redis do kaam: (1) cache — same venues/shows/dashboard JSON baar-baar DB se nahi (2) Celery broker — Flask task queue mein daalta hai, worker uthata hai.

    Flow: cache.get(key) → hit pe return, miss pe SQLAlchemy + SET with timeout. Admin write ke baad cache.delete, warna stale list.

    Source of truth database hi hai. Redis crash/band = cache miss (app chalni chahiye) + queue ruk sakti hai. Important bookings sirf Redis mein mat rakho.

    Alag: Redis ≠ Memcached (Celery broker nahi). Redis ≠ localStorage (woh browser). redis-cli ping → PONG viva proof.

    Project example: File+line decorator. redis-cli get key optional.

  45. 45
    What is Redis?
    Times asked 21
    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.

    Example

    import redis
    r = redis.Redis(host='localhost', port=6379, db=0)
    r.set('venues', json.dumps(data), ex=30)
    print(r.get('venues'))

    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.

  46. 46
    Why do we use Redis?
    Times asked 2
    Official solution

    SimpleMAD2 course Redis isliye: ek tool mein cache + Celery broker.

    Memcached sirf cache. RabbitMQ sirf queue. Redis dono + easy install.

    Student project size pe SQLite + Redis kaafi. Production mein hosted Redis, persistence optional.

    Redis in-memory key-value store hai — fridge pe sticky note, poori kitchen (SQL database) har baar mat kholo.

    MAD2 mein Redis do kaam: (1) cache — same venues/shows/dashboard JSON baar-baar DB se nahi (2) Celery broker — Flask task queue mein daalta hai, worker uthata hai.

    Flow: cache.get(key) → hit pe return, miss pe SQLAlchemy + SET with timeout. Admin write ke baad cache.delete, warna stale list.

    Source of truth database hi hai. Redis crash/band = cache miss (app chalni chahiye) + queue ruk sakti hai. Important bookings sirf Redis mein mat rakho.

    Alag: Redis ≠ Memcached (Celery broker nahi). Redis ≠ localStorage (woh browser). redis-cli ping → PONG viva proof.

    Project example: requirements.txt: redis, Flask-Caching, celery. README: redis-server pehle chalao.

  47. 47
    What is Celery?
    Times asked 19
    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.

    MAD2 typical jobs: daily reminder mail, monthly HTML report, user-triggered CSV export.

    Web request 200ms hona chahiye. 10,000 emails request thread mein = timeout. Worker alag CPU pe kaam kare.

    Redis broker chahiye. Beat alag process schedule ke liye.

    Example

    @celery.task
    def daily_reminder():
        for u in User.query.filter_by(active=True):
            send_mail(u.email, 'Book something today!')

    Project example: User Export click → 202 Accepted. Worker CSV + email. Daily 6pm Beat reminder.

    Viva tipWorker + Redis bina Beat ke user-triggered chalega. Scheduled jobs ke liye Beat bhi chahiye.

  48. 48
    How do Celery and Redis work together?
    Times asked 1
    Official solution

    SimpleRedis box hai, Celery us box se kaam uthane wala worker hai — same cheez nahi.

    Redis: store (cache keys) + queue (broker lists).
    Celery: Python library jo tasks define karti hai, .delay() se queue mein daalti hai, worker execute karta hai.

    Dono localhost pe ho sakte hain. Alag Redis DB index use karo. Redis band = cache miss + Celery stuck.

    Example

    Celery: broker_url='redis://localhost:6379/0'
    Cache:  CACHE_REDIS_URL='redis://localhost:6379/1'

    Project example: export_csv.delay(user_id) Flask se. Worker Redis se task uthata hai, CSV+email. Cache alag keys venues.

    Viva tipAgar possible ho to cache db=1, broker db=0 — keys mix nahi hoti.

  49. 49
    Explain the flow of an API request.
    Times asked 1
    Official solution

    SimpleWSGI → URL map → decorators auth/cache → view → response. Cache hit view skip.

    Arrival to response favourite.

    Flask Python micro web framework. Route decorator URL → function. MAD2 mein JSON API: request.get_json(), jsonify, JWT.

    WSGI: server (Werkzeug) app ko call. if __name__ == '__main__' sirf direct run. Factory create_app() test/celery ke liye.

    Blueprint/resources folders. @app.route vs MethodView. Debug=True viva local, prod nahi. CORS alag port Vue ke liye.

    Project example: Trace one GET venues.

  50. 50
    Explain the search API.
    Times asked 1
    Official solution

    SimpleUngli rakhe to 4-line formula — panic ki jagah structure.

    1) File ka role: model / Flask route / Vue SFC / celery task / config
    2) Input kahan: JSON, params, token, props, $route
    3) Kya kaam: query, cache, validation, .delay()
    4) Output: jsonify, this.items, email, redirect

    Unknown keyword: import, decorator, if, commit — har ka reason. Bluff mat.

    Suggested flow1) Kaunsi layer?
    2) Input?
    3) DB/cache/task?
    4) Response/UI?

    Project example: Booking POST: jwt, seats check, commit, 201, Vue list push.

    Viva tipUnknown keyword: import, decorator, if, commit — har ka reason. Panic mat.

  51. 51
    Explain HTTP methods (CRUD).
    Times asked 1
    Official solution

    SimpleHTTP verbs REST ke tools. Methods HTTP ke hain, REST unhe convention se use karta hai.

    GET read cacheable. POST create payload. PUT replace. PATCH patch. DELETE remove.

    GET exists bina REST ke bhi — browser address bar.

    HTTP verbs + status REST ki zabaan. GET read, POST create, PUT replace, PATCH partial, DELETE remove. GET typically no body.

    Status: 200 OK, 201 created, 202 accepted (Celery task), 400 bad input, 401 no/bad token, 403 role nahi, 404 missing, 409 conflict (double book), 500 server.

    AJAX/fetch page reload nahi. SPA poori isi pe. Postman se bina Vue ke API prove karo — examiner pasand.

    Example

    GET /api/venues
    POST /api/venues
    PUT /api/venues/1
    DELETE /api/venues/1

    Project example: resources.py methods list. Postman 4-5 calls.

    Viva tipGET typically no body (cacheable). POST/PUT/PATCH haan payload. PUT idempotent, POST nahi.

  52. 52
    Explain HTTP vs HTTPS.
    Times asked 1
    Official solution

    SimpleHTTP postcard (koi padh le). HTTPS envelope (TLS lock).

    Same headers, encrypted channel. MITM se password/token bachao. Local viva HTTP OK.

    HTTP/1.1 version keep-alive. TCP neeche, TLS security layer, SMTP mail alag.

    Browser + API ke beech extra darwaze: CORS origin allow, HTTPS encrypt transit, CSRF cookie-auto-send attack, XSS HTML inject, SQL injection raw query.

    MAD2 SPA: Vue :8080 Flask :5000 → Flask-CORS. JWT localStorage XSS se chori ho sakta — v-html user input pe avoid. Password Network tab localhost pe dikhega; prod HTTPS, response mein password echo nahi.

    401 unauthenticated, 403 unauthorized, 400 validation. Hash one-way — SHA decrypt nahi hota. Secret key .env, GitHub pe nahi.

    Project example: Dev localhost http. Production https:// + cert.

    Viva tipProtocols: HTTP/HTTPS app, TCP transport, TLS security, SMTP mail. HTTP/1.1 version — persistent connections.

  53. 53
    Explain common HTTP status codes (e.g., 200, 201, 400, 401, 403).
    Times asked 1
    Official solution

    Simple2xx jeet, 4xx teri galti, 5xx meri (server) galti.

    200 OK, 201 Created, 400 validation, 401 no/invalid token (authentication fail), 403 role (authorization fail), 404 missing, 409 conflict, 500 crash.

    403 vs IntegrityError: 403 permission. Duplicate unique → 400/409, 500 mat chhodo.

    Example

    return jsonify(msg='ok'), 200
    return jsonify(msg='login required'), 401

    Project example: Login fail 401. User admin API 403. Duplicate booking 400.

    Viva tip403 vs IntegrityError: 403 permission, IntegrityError DB constraint (duplicate unique) — 400/409 banao, 500 mat chhodo.

  54. 54
    Difference between Session Storage and Local Storage.
    Times asked 1
    Official solution

    SimpleSame API getItem/setItem. SS tab close pe saaf. LS survive. Shared computer pe SS thoda safer.

    Token LS common. Session storage quiz in-progress bhi.

    Pehle 1-line definition, phir related MAD2 layer (Vue SFC / Flask route / models.py / tasks.py / Redis).

    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: token localStorage. Don't mix randomly.

  55. 55
    Have you used AI in your project? If yes, where and how?
    Times asked 1
    Official solution

    SimpleHaan/kitna, kahan, verification story. Report match.

    Same as AI percentage questions. Concrete bug you caught in AI code.

    Pehle 1-line definition, phir related MAD2 layer (Vue SFC / Flask route / models.py / tasks.py / Redis).

    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: Celery Windows / cache stale AI galat tha, docs se fix.

  56. 56
    What percentage of the project was AI-generated?
    Times asked 1
    Official solution

    SimpleSach % + kahan + kaise verify + kya seekha. Report se contradict mat.

    Boilerplate vs business logic. Examiner process poochta. 'Sab ChatGPT' red flag.

    Verify: docs, run, edge case. Seekha: CORS, JWT exp, beat vs worker.

    Pehle 1-line definition, phir related MAD2 layer (Vue SFC / Flask route / models.py / tasks.py / Redis).

    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: Jo number form/PDF mein hai wahi. Example file jo AI se start kiya, khud debug kiya.

    Viva tipExaminer 'kya seekha / kaise check kiya' pe marks. 'Sab ChatGPT' red flag. Jo khud debug kiya woh story ready rakho.

  57. 57
    What is MVC?
    Times asked 9
    Official solution

    SimpleModel-View-Controller separation of concerns.

    Map folders. Vue is V. Flask routes C. models M.

    MAD2 architecture: Vue SPA (client) → HTTP JSON → Flask API (server) → SQLAlchemy DB. Side path: Flask → Redis broker → Celery worker → MailHog/CSV.

    Client-server alag ports. State: Vue memory + LS token. Persistent: SQLite. Cache: Redis. MVC-ish: models.py, API views, Vue templates.

    Scale: more workers, Postgres, cache, not 'bigger SQLite file'.

    Example

    Vue Booking.vue → POST /api/book → Booking model → jsonify → this.bookings.push

    Project example: See architecture essay.

  58. 58
    What are Webhooks?
    Times asked 7
    Official solution

    SimpleWebhook = woh tumhe call karta hai. API = tum unhe call karte ho.

    Payment success pe Stripe tumhare /webhooks/payment pe POST. Tum poll nahi karte.

    API pull, webhook push. WebSocket dono taraf live connection. SSE server→client stream.

    MAD2 mostly REST APIs. Webhook theory + example kaafi. Verify signature production mein.

    Example

    @app.route('/webhooks/payment', methods=['POST'])
    def hook():
        event = request.json
        ...

    Project example: Agar implement nahi: 'course REST. Webhook design: POST /webhooks/booking-paid'.

    Viva tipAPI pull, webhook push. WebSocket dono taraf live. SSE server → client stream.

  1. 1
    Demonstrate the complete project.
    Times asked 3
    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.

  2. 2
    Explain your project configuration.
    Times asked 1
    Official solution

    SimpleRoutes/controllers URLs handle karte hain. app.py app banata hai, models.py data, templates/ views, static/ CSS-JS.

    Typical structure:
    app.py / __init__.py → Flask app, db.init, register blueprints
    models.py → tables
    routes.py / views → @app.route functions
    templates/ → Jinja HTML
    static/ → css, images
    instance/*.db → SQLite

    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.

  3. 3
    What can be used instead of .env / python-dotenv for managing configuration?
    Times asked 1
    Official solution

    SimpleConfig (SECRET_KEY, DB URI) code se bahar environment mein rakho.

    os.getenv('SECRET_KEY') ya python-dotenv .env file load.
    Alternative: real OS env, config.py classes (Dev/Prod), Docker secrets. .env gitignore karo.
    Folder name change se .env path toot sakta hai — relative Path(__file__) use karo.

  4. 4
    Explain the APIs (or routes) used in your project.
    Times asked 1
    Official solution

    SimpleRoutes/controllers URLs handle karte hain. app.py app banata hai, models.py data, templates/ views, static/ CSS-JS.

    Typical structure:
    app.py / __init__.py → Flask app, db.init, register blueprints
    models.py → tables
    routes.py / views → @app.route functions
    templates/ → Jinja HTML
    static/ → css, images
    instance/*.db → SQLite

    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.

  5. 5
    Write basic Jinja code (e.g., loops, variables, or conditions).
    Times asked 1
    Official solution

    Simple Jinja loop + if — examiner notepad mein likhwaata hai:

    {% for t in treks %}
      <p>{{ t.name }} — {{ t.location }}</p>
    {% else %}
      <p>No treks</p>
    {% endfor %}
    
    {% if user.role == 'admin' %}
      <button>Delete</button>
    {% endif %}

    List filter: {% if x > 10 %}{{ x }}{% endif %}
    Length: {{ items|length }} Upper: {{ name|upper }}
    Table: loop ke andar <tr><td>

  6. 6
    Explain how you implemented charts (e.g., Chart.js integration and data flow).
    Times asked 1
    Official solution

    Simple flow: Browser → Route (controller) → Model/DB → phir template (view) → Browser.

    Submit example:
    1) HTML form POST /register, name='email'
    2) register() request.form.get('email')
    3) User(email=...) ; db.session.add; commit
    4) redirect dashboard
    5) dashboard query + render_template
    6) Jinja {{ user.email }} / {% for %}

    GET search: /search?q=flask → request.args.get('q') → filter ilike → template list.
    JSON API: jsonify, frontend fetch().

Created for educational purposes only. Questions are based on students' personal experiences and may not reflect actual exam content.