Viva prep · Real questions · Student experiences Enroll in Bootcamp

Proctor workspace

Proctor Level1_92

Share your experience Add your viva experience here
143 Questions
20 Sets
0 Topics
18 Reviews
Tips for this examiner: Chill

Student reviews

Ayush Kumar Sahu MAD1

I would say she is very calm. Just give straight point to point short answers no fuss—thats more than enough in this case.

Questions remembered
  1. The proctor came 20 minutes late . But it was stretched for extra 30 minutes then . So yeah had a full fledged viva.
  2. Questions for Level-1
  3. 1.) She ask for the github collaborator status.
  4. 2.) She did not ask me for the checksum and told to run the project directly after downloading it.
  5. 3.) She told me to explain the basic functionality of the projects , how to blacklist a company , create a new student and company , create a drive , check for the admin approvals and so on.
  6. 4.) She asked to make changes in the frontend and backend of the code so that only the shortlisted students are visible .
  7. 5.) She asked to change the background and button colors in the student dashboard.
  8. 6.) She asked what render_template does
  9. 7.) She asked what is authorization and authentication and how it is used in the project.
  10. 8.) She asked how resume is uploaded and viewed .
Sheet response MAD1

Good proctor,
Revise all previous session questions, dont panic very smooth experience and would suggest to fellow students start with the demo explanation using technical terms which creates the best impression.
Mam needs exact straight to the point answer.

Questions remembered
  1. Placement Portal Application
  2. Asked to open GitHub repository and show the project
  3. Asked about collaborators and when they were added and whether u filled the form
  4. Asked to go to viva booking portal
  5. Asked to run the project and demonstrate functionality
  6. Asked about resume uploading and accesibility from company side.
  7. Asked to demonstrate search functionality (company/student) and show only active companies on the admin dahsboard
  8. Asked to do coding to get only/ show only active companies on the admin dahsboard
  9. Asked to change UI any button in admin dashboard.html to any other color
  10. Asked to explain ORM used in the project
  11. Asked types of http request and what u have used in the project
  12. asked about the frontend validation and backend validation explanation how u have implemented it. since i used techincal terms for presentation like render template and routes while demo the viva examiner appeared to be convinced and asked very few questions like code changes and some common questions
Nabiha Anam MAD1

She's very calm and helps you out if you get stuck

Questions remembered
  1. She asked for ID card then asked to show the git repository and checked if I added MAD-1 as collaborator
  2. Then she asked me to go to Viva Booking and download my project and unzip it.
  3. She asked me to run the app and gave instructions (register as company, create a drive, give approval, blacklist a student and then login with the student's username) - this was done within 5-8 mins
  4. After that she asked me to write a query change and display the shortlisted students (I got confused and started writing a new route and made template changes which didn't work🥲)
  5. Then she told me to go on admin dashboard and in the student application sections instead of date, display their status (accepted, rejected, shortlisted)
  6. She told me to write the same query in the admin dashboard... I struggled for a long time even though my query was right and the changes I made in the template were right cuz I was typing shortlisted instead of Shortlisted....🫠 She helped me out though and asked me to debug and then she told me to check the spelling... It worked after that
  7. She asked me to change the color of a button
  8. Then she asked me theory questions
  9. - What database have you used
  10. - Have you used orm and if yes which one
  11. - What is orm
  12. - What function did you use to connect backend to frontend
  13. - Authorisation vs Authentication
  14. The theory questions were from the sheet only...
  15. It took 40 mins (mainly cuz I struggled with the code change)
Sheet response MAD1

good proctor, finsed viva under 20min. Allowed me to use VS code for edits.

Questions remembered
  1. - Showed basic flow of the application
  2. - What is ORM? Which ORM I used
  3. - Which DB i used
  4. - What are the HTTP methods
  5. - CODING: I had two tables in company dashboard one for ongoing drives and another for completed drives. So the proctor aked me to merge the two tables.
Sheet response MAD1

Nice mam, kind.
Good proctor
Revise all previous question, mostly questions are from here only

Questions remembered
  1. "1. Asked to open GitHub repository and show the project
  2. Asked about collaborators and when they were added
  3. Asked to go to viva booking portal
  4. Asked to run the project and demonstrate functionality
  5. Asked to register as a company and create a post
  6. Asked to approve drive and show approval process
  7. Asked to register as a student and apply for job
  8. Asked to shortlist a student and verify in dashboard
  9. Asked to demonstrate search functionality (company/student)
  10. Asked to show blacklisting feature and test login for blacklisted user
  11. Asked to view all applications and jobs
  12. Only show shortlisted candidates.
  13. Asked to explain the query changes
  14. Asked to change UI (button color to gree )
  15. Asked if ORM is used
  16. Asked which database is used (SQLite)
  17. Asked to explain ORM
  18. Asked which function is used to pass data from backend to frontend (render_template)
om MAD1

Good proctor

Questions remembered
  1. level 1 viva
  2. Repo and collaborator
  3. Id check
  4. 2 device meet join
  5. Helps you wherever you are stuck
  6. And she is patient as well
  7. If any error comes we can tell let me fix this
  8. She would be like ok
  9. Told to show some functionalities like registration search drive apply once
  10. And then told to change button color and then told to show only approved students in applicants table of drive
  11. And then asked about showing front end and backend validation in code show like and explain
  12. Then 5 methods get put post dlt patch
  13. And then show where only get was used
Debanshi MAD1

She is patient and will nudge you in the right direction. Be calm and clear. Practise prev questions from this sheet- she tends to repeat them.

Questions remembered
  1. Level 1Viva
  2. Demonstrate app
  3. What is ORM? Which ORM used and where?
  4. Which function connects frontend to backend?
  5. Which db used?
  6. Practical: Change the colour of button to blue
  7. Practical: In the All Application view window only showcase the shortlisted students
  8. Frontend and backend validation- what are they and where have you used them in your app?
Yoo_Yoo_Anirban MAD1

Mam is Very patient and Soft Spoken, She will give you proper time and will hear you..
Know you Code, some Changes,

at the end part of the viva i messed a bit in validations questions that i have not implemented, backend validation, she said that "i saw you have implemented"
then i show her the part where i have implemented that and explain..( i said "actually i am bit nervus" she said : "yeah i can understand its a Viva so its happens)


So i am Saying the give Her proper respect.
and Know your Code

Questions remembered
  1. in Level 1-:
  2. For 20min she just make me use my Application work flow,
  3. ORM, MVC, and some of the basic question that are in this sheet,
  4. What function i use for the data to send from Backend to Front End,
  5. How did i implemented Front end and Backend Validation,
  6. CSS vs Bootstrap,
  7. some changes like-:
  8. SHOW only the Shortlisted Students, Placed student rather than showing all,
  9. she asked me that what if a student apply twice in same post in your app (i said "mam here
  10. after appling the job, that will not be shown to student again, and EXPLAIN THE CODE),
  11. some front end Changes like Button colour changes,
  12. how the student can UPdate his CGPA and code explanation,
  13. how the Placement status changes in company dash board and how its changing in Student Dash Board,
  14. How Admin is Approving , rejecting, blacklisting the Company and the Drives,, What happens after that,
  15. What happens with the job posting after got rejected..
  16. these are most of the Questions
Sheet response MAD1

Shared viva questions from response sheet: show id; checked github collaborator; she asked to register as a company, add drive, register a student and apply, get it shortlisted then demonstrate blacklist and search functionality. 4.code change - only show approved drive in company dashboard change colour of button

Questions remembered
  1. show id
  2. checked github collaborator
  3. she asked to register as a company, add drive, register a student and apply, get it shortlisted then demonstrate blacklist and search functionality. 4.code change - only show approved drive in company dashboard change colour of button
  4. what's ORM. which ORM is used.
  5. which database is used.
  6. what is used to connect frontend and backend.
  7. show frontend and backend validation and how to do it
Sheet response MAD1

Examiner is calm and focuses on practical understanding. Be confident with your project demo, know your code (especially ORM, queries, and validation), and be ready to make small live changes.

Questions remembered
  1. Asked to open GitHub repository and show the project
  2. Asked about collaborators and when they were added
  3. Asked to go to viva booking portal
  4. Asked to run the project and demonstrate functionality
  5. Asked to register as a company and create a post
  6. Asked to approve drive and show approval process
  7. Asked to register as a student and apply for job
  8. Asked to shortlist a student and verify in dashboard
  9. Asked to demonstrate search functionality (company/student)
  10. Asked to show blacklisting feature and test login for blacklisted user
  11. Asked to view all applications and jobs
  12. Asked to modify query to filter jobs with salary > 1 lakh
  13. Asked to explain the query changes
  14. Asked to change UI (button color to blue)
  15. Asked if ORM is used
  16. Asked which database is used (SQLite)
  17. Asked to explain ORM
  18. Asked which function is used to pass data from backend to frontend (render_template)
  19. Asked to show frontend and backend validation
  20. General project demonstration and explanation questions
Sheet response MAD1

She gave hints for live coding ques when i was stuck on a small error like using == instead of = in query

Questions remembered
  1. Placement portal application:
  2. She asked to register as both student and company and then login for each, perform basic functionalities
  3. Login as admin and manage students and companies
  4. For live coding, In admin dashboard's placement drives list, show only drives where status is applied (dont show shortlisted/rejected etc)
  5. change color of "back to dashboard" button from grey to blue
  6. In theory, she asked what is orm, which orm used
  7. What is frontend and backend validation and show in code
Sheet response MAD1

If you download the project, the checksum won't be done. Open github to show repository. Start app and start vs code. No need to formalis the flow, the viva examiner will ask you to show functionalities one by one.

Questions remembered
  1. What database have you used
  2. Have you used ORM, which ORM have you used, where is it in code
  3. What is ORM
  4. Change Code to reflect appointments which are only completed and not all appointments (I was on as in dashboard at that time so changed that part only)
  5. Show an example of a frontend and a backend validation (I did not have that in my code so told there're no validations)
Ravi Kumar K MAD1

Final Tip (Based on Your Experience)
• She is polite and supportive
• Focus is on functionality, not trick questions
• Know your own code
• Explain in simple words
• Perform exactly what she asks during the demo

Questions remembered
  1. First, She would check whether you add a collaborator on GitHub?
  2. Show the complete project demo : Login as Admin, Add a Doctor, Add a Patient, Book an Appointment, Show Admin, Doctor, and Patient dashboards, Verify that all features work as per requirements. This would take 20-25 minutes
  3. Which function is used to connect backend and frontend? (render_template() in Flask)
  4. HTTP Methods. Where is only GET request used in your routes?
  5. Difference between GET and POST
  6. Authentication vs Authorization. Explain how authorization is implemented in your application (Role-based access: admin / doctor / patient)
  7. Code Modification Task (Live Change) : • For me she asked to display only completed appointments in past appointments section. Show cancelled appointments in upcoming appointments (Admin dashboard) • Explain the logic after making the change
  8. Dashboard Functionality : Explain what each dashboard does
  9. How data is stored and retrieved. How tables are related (User, Doctor, Patient, Appointment)
  10. Explain any route or function she points to. Explain filtering logic used in queries
Sheet response MAD1

Shared viva questions from response sheet: Demo; Make changes in the table to show cancelled appointments in the admin dashboard; what is authentication and authorization?

Questions remembered
  1. Demo
  2. Make changes in the table to show cancelled appointments in the admin dashboard
  3. what is authentication and authorization?
  4. Which function have you used to connect backend and frontend? One more question was asked about SQLite but I can't recall
Sheet response MAD1

Shared viva questions from response sheet: Show git; Demo; Change table to only see pending appointments

Questions remembered
  1. Show git
  2. Demo
  3. Change table to only see pending appointments
  4. Authentication vs Authorization
  5. Http methods and function
Sheet response MAD1

very sweet and polite proctor gave me time to think and was helpful also

Questions remembered
  1. 1.Checksum
  2. 2.GitHub Repo
  3. 3.Code Demo
  4. 4.What is ORM where is it used in your code
  5. 5.What are different HTTP methods
  6. 6.Show GET in you code and explain its pursose
Sheet response MAD1

More interested in database part. She is patient so be polite and answer. It'll be fine

Questions remembered
  1. *explain orm *MVC *where did you initiate database *which function in flask help with jinjja templating *authorization vs authentication, show it in code *explain some portion of code
Sheet response MAD1

Shared viva questions from response sheet: Show ID. Show GitHub Repo and added Collaborator.; She asked me If I can do the checksum. I told her that I'm not sure about that. Even though I knew :) So, she allowed me to download from dashboard and run in front of her. After that she asked couple of theory questions e.g. what is ORM? Show where u used orm? What will be the raw SQL for some query which i used in project? Where have you defi...

Questions remembered
  1. Show ID. Show GitHub Repo and added Collaborator.
  2. She asked me If I can do the checksum. I told her that I'm not sure about that. Even though I knew :) So, she allowed me to download from dashboard and run in front of her. After that she asked couple of theory questions e.g. what is ORM? Show where u used orm? What will be the raw SQL for some query which i used in project? Where have you defined the database in your project? She was mispronouncing the word "tables" so much I didn't understand that word in her tough accent. Later I showed my app and gave demo. After that she asked me to change the code of admin dashboard to show only those parking lots which have price per hour = some no. X. She was supportive and remain calm when my app was not updating even after doing correct code change. But finally it got updated after restarting the vs code. After that she asked me http methods. Told me to show where is get method in my routes. Viva Over. After exactly 30min.

Approved viva sets

  1. 1
    Demonstrate the app
    Times asked 6
  2. 2
    All the rubrics from viva portal
    Times asked 2
  3. 3
    Change the colour of button
    Times asked 2
  4. 4
    Theory:
    Times asked 8
  5. 5
    Jwt - why, how works?
    Times asked 2
  6. 6
    Lifecycle hooks
    Times asked 6
  7. 7
    ORM
    Times asked 10
  8. 8
    CORS
    Times asked 2
Advice: Chill
  1. 1
    The proctor came 20 minutes late . But it was stretched for extra 30 minutes then . So yeah had a full fledged viva.
    Times asked 1
    Official solution

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

  2. 2
    Questions for Level-1
    Times asked 1
    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.

  3. 3
    1.) She ask for the github collaborator status.
    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.

  4. 4
    2.) She did not ask me for the checksum and told to run the project directly after downloading 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

  5. 5
    3.) She told me to explain the basic functionality of the projects , how to blacklist a company , create a new student and company , create a drive , check for the admin approvals and so on.
    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
    5.) She asked to change the background and button colors in the student 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.

  7. 7
    6.) She asked what render_template does
    Times asked 1
    Official solution

    Simplerender_template Jinja HTML file ko data deke final HTML banata hai.

    Example

    return render_template('dashboard.html', user=user, lots=lots)
  8. 8
    8.) She asked how resume is uploaded and viewed .
    Times asked 1
    Official solution

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

Advice: I would say she is very calm. Just give straight point to point short answers no fuss—thats more than enough in this case.
  1. 1
    Asked about resume uploading and accesibility from company side.
    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 types of http request and what u have used in the project
    Times asked 1
    Official solution

    SimpleHTTP methods batate hain request kya karna chahti hai. Common: GET POST PUT PATCH DELETE.

    GETread/fetch. Safe, URL se. Page kholna, search.

    POSTcreate/submit. Form, login.

    PUTpoora replace/update. Idempotent.

    PATCHpartial update.

    DELETEhataana.

    HEAD: sirf headers. OPTIONS: CORS preflight.

    Flask: @app.route('/x', methods=['GET','POST'])
    Agar methods na likho to default sirf GET.
    HTML form native sirf GET/POST. PUT/DELETE JS/fetch ya hidden _method se.
    GET se data fetch ho sakta hai, create nahi karna chahiye. POST se theoretically fetch ho sakta hai lekin cache/semantics galat.
    DELETE fetch ke liye nahi. GET POST ka kaam officially nahi karta — side effects GET pe mat rakho.

Advice: Good proctor, Revise all previous session questions, dont panic very smooth experience and would suggest to fellow students start with the demo explanation using technical terms which creates the best impression. Mam needs exact straight to the point answer.
  1. 1
    Then she asked me to go to Viva Booking and download my project and unzip it.
    Times asked 1
    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
    After that she asked me to write a query change and display the shortlisted students (I got confused and started writing a new route and made template changes which didn't work🥲)
    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'
  3. 3
    She told me to write the same query in the admin dashboard... I struggled for a long time even though my query was right and the changes I made in the template were right cuz I was typing shortlisted instead of Shortlisted....🫠 She helped me out though and asked me to debug and then she told me to check the spelling... It worked after that
    Times asked 1
    Official solution

    SimpleDebug: terminal traceback padho, print/logging, Flask debug, browser Network/Console, reproduce minimum steps.

  4. 4
    She asked me to change the color of a button
    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.

  5. 5
    - What function did you use to connect backend to frontend
    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.

  6. 6
    - Authorisation vs Authentication
    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)
  7. 7
    It took 40 mins (mainly cuz I struggled with the code change)
    Times asked 1
    Official solution

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

Advice: She's very calm and helps you out if you get stuck
  1. 1
    - Showed basic flow of the application
    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
    - CODING: I had two tables in company dashboard one for ongoing drives and another for completed drives. So the proctor aked me to merge the two tables.
    Times asked 1
    Official solution

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

Advice: good proctor, finsed viva under 20min. Allowed me to use VS code for edits.
  1. 1
    Only show shortlisted candidates.
    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.

Advice: Nice mam, kind. Good proctor Revise all previous question, mostly questions are from here only
  1. 1
    2 device meet join
    Times asked 1
    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()
  2. 2
    Helps you wherever you are stuck
    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
    And she is patient as well
    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
    If any error comes we can tell let me fix this
    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.

  5. 5
    She would be like ok
    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.

  6. 6
    Told to show some functionalities like registration search drive apply once
    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()
  7. 7
    And then told to change button color and then told to show only approved students in applicants table of drive
    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.

  8. 8
    And then asked about showing front end and backend validation in code show like and explain
    Times asked 1
    Official solution

    SimpleValidation = input rules: required, email format, length, unique. Frontend UX, backend security — dono.

    Example

    if not email or '@' not in email:
        flash('Invalid email')
        return redirect(request.url)
    if User.query.filter_by(email=email).first():
        flash('Email taken')
  9. 9
    Then 5 methods get put post dlt patch
    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')
  10. 10
    And then show where only get was used
    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.

Advice: Good proctor
  1. 1
    Level 1Viva
    Times asked 1
    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
    Which db used?
    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: She is patient and will nudge you in the right direction. Be calm and clear. Practise prev questions from this sheet- she tends to repeat them.
  1. 1
    in Level 1-:
    Times asked 1
    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
    For 20min she just make me use my Application work flow,
    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.

  3. 3
    What function i use for the data to send from Backend to Front End,
    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
    How did i implemented Front end and Backend Validation,
    Times asked 1
    Official solution

    SimpleValidation = input rules: required, email format, length, unique. Frontend UX, backend security — dono.

    Example

    if not email or '@' not in email:
        flash('Invalid email')
        return redirect(request.url)
    if User.query.filter_by(email=email).first():
        flash('Email taken')
  5. 5
    some changes like-:
    Times asked 1
    Official solution

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

  6. 6
    she asked me that what if a student apply twice in same post in your app (i said "mam here
    Times asked 1
    Official solution

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

  7. 7
    after appling the job, that will not be shown to student again, and EXPLAIN THE 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.

  8. 8
    how the student can UPdate his CGPA and code explanation,
    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.

  9. 9
    how the Placement status changes in company dash board and how its changing in Student Dash Board,
    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.

  10. 10
    How Admin is Approving , rejecting, blacklisting the Company and the Drives,, What happens after that,
    Times asked 1
    Official solution

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

  11. 11
    What happens with the job posting after got rejected..
    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.

  12. 12
    these are most of the Questions
    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: Mam is Very patient and Soft Spoken, She will give you proper time and will hear you.. Know you Code, some Changes, at the end part of the viva i messed a bit in validations questions that i have not implemented, backend validation, she said that "i saw you have implemented" then i show her the part where i have implemented that and explain..( i said "actually i am bit nervus" she said : "yeah i can understand its a Viva so its happens) So i am Saying the give Her proper respect. and Know your Code
  1. 1
    checked github collaborator
    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.

  1. 1
    Asked to open GitHub repository and show the project
    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.

  2. 2
    Asked about collaborators and when they were added
    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 go to viva booking portal
    Times asked 1
    Official solution

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

  4. 4
    Asked to run the project and demonstrate functionality
    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
    Asked to register as a company and create a post
    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
    Asked to approve drive and show approval process
    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
    Asked to register as a student and apply for job
    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.

  8. 8
    Asked to shortlist a student and verify in dashboard
    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.

  9. 9
    Asked to show blacklisting feature and test login for blacklisted user
    Times asked 1
    Official solution

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

  10. 10
    Asked to view all applications and jobs
    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.

  11. 11
    Asked to modify query to filter jobs with salary > 1 lakh
    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.

  12. 12
    Asked to explain the query changes
    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.

  13. 13
    Asked to change UI (button color to blue)
    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.

  14. 14
    Asked which database is used (SQLite)
    Times asked 1
    Official solution

    SimpleSQLite file-based DB — setup easy, MAD1 ke liye perfect. Production heavy traffic pe Postgres better.

    Example

    SQLALCHEMY_DATABASE_URI = 'sqlite:///app.db'
  15. 15
    Asked which function is used to pass data from backend to frontend (render_template)
    Times asked 1
    Official solution

    Simplerender_template Jinja HTML file ko data deke final HTML banata hai.

    Example

    return render_template('dashboard.html', user=user, lots=lots)
  16. 16
    General project demonstration and explanation questions
    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.

Advice: Examiner is calm and focuses on practical understanding. Be confident with your project demo, know your code (especially ORM, queries, and validation), and be ready to make small live changes.
  1. 1
    Placement portal application:
    Times asked 1
    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
    She asked to register as both student and company and then login for each, perform basic functionalities
    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
  3. 3
    Login as admin and manage students and companies
    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
    For live coding, In admin dashboard's placement drives list, show only drives where status is applied (dont show shortlisted/rejected etc)
    Times asked 1
    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
    change color of "back to dashboard" button from grey to blue
    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: She gave hints for live coding ques when i was stuck on a small error like using == instead of = in query
  1. 1
    What database have you used
    Times asked 1
    Official solution

    SimpleSQLite file-based DB — setup easy, MAD1 ke liye perfect. Production heavy traffic pe Postgres better.

    Example

    SQLALCHEMY_DATABASE_URI = 'sqlite:///app.db'
  2. 2
    Change Code to reflect appointments which are only completed and not all appointments (I was on as in dashboard at that time so changed that part only)
    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: If you download the project, the checksum won't be done. Open github to show repository. Start app and start vs code. No need to formalis the flow, the viva examiner will ask you to show functionalities one by one.
  1. 1
    First, She would check whether you add a collaborator on GitHub?
    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.

  2. 2
    Show the complete project demo : Login as Admin, Add a Doctor, Add a Patient, Book an Appointment, Show Admin, Doctor, and Patient dashboards, Verify that all features work as per requirements. This would take 20-25 minutes
    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
    HTTP Methods. Where is only GET request used in your routes?
    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
    Authentication vs Authorization. Explain how authorization is implemented in your application (Role-based access: admin / doctor / patient)
    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)
  5. 5
    Dashboard Functionality : Explain what each dashboard does
    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
    How data is stored and retrieved. How tables are related (User, Doctor, Patient, Appointment)
    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.

  7. 7
    Explain any route or function she points to. Explain filtering logic used in queries
    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: Final Tip (Based on Your Experience) • She is polite and supportive • Focus is on functionality, not trick questions • Know your own code • Explain in simple words • Perform exactly what she asks during the demo
  1. 1
    Make changes in the table to show cancelled appointments in the admin dashboard
    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
    what is 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)
  3. 3
    Which function have you used to connect backend and frontend? One more question was asked about SQLite but I can't recall
    Times asked 1
    Official solution

    SimpleSQLite file-based DB — setup easy, MAD1 ke liye perfect. Production heavy traffic pe Postgres better.

    Example

    SQLALCHEMY_DATABASE_URI = 'sqlite:///app.db'
  1. 1
    Show git
    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
    Change table to only see pending appointments
    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.

  3. 3
    Http methods and function
    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.

  1. 1
    1.Checksum
    Times asked 2
    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.

  2. 2
    3.Code Demo
    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
    5.What are different 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
    6.Show GET in you code and explain its pursose
    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: very sweet and polite proctor gave me time to think and was helpful also
  1. 1
    Show ID. Show GitHub Repo and added Collaborator.
    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.

  1. 1
    Demonstrate the app
    Times asked 6
    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
    All the rubrics from viva portal
    Times asked 2
    Official solution

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

  3. 3
    Change the colour of 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.

  4. 4
    Theory:
    Times asked 8
    Official solution

    SimpleTheory = concepts: ORM, MVC, auth vs authz, Jinja inheritance, sessions. 1-line def + project example.

  5. 5
    Jwt - why, how works?
    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.

  6. 6
    Lifecycle hooks
    Times asked 6
    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.

  7. 7
    ORM
    Times asked 10
    Official solution

    SimpleORM = Object Relational Mapping. Database tables ko Python classes/objects se map karta hai, raw SQL kam likhni padti hai.

    Bina ORM: cursor.execute('SELECT * FROM user WHERE id=?', [5])
    ORM se: User.query.get(5) ya db.session.get(User, 5)

    Example model

    class User(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        email = db.Column(db.String(120), unique=True)

    FaydePython mein soch sakte ho, SQL injection se protection (parameterized), relationships easy, DB switch thoda aasan.

    Nuksaancomplex queries slow/abstract, seekhne ki layer extra, kabhi raw SQL phir bhi chahiye.

    MAD1: SQLAlchemy (Flask-SQLAlchemy). Tables db.create_all() ya migrations se banti hain.

  8. 8
    CORS
    Times asked 2
    Official solution

    SimpleDifferent origin Vue vs Flask — browser CORS check. Server Allow-Origin.

    Failed = frontend error even if curl works. Examiner curl vs browser.

    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

    from flask_cors import CORS
    CORS(app, resources={r'/api/*': {'origins': 'http://localhost:8080'}})

    Project example: Flask-CORS localhost:8080.

Advice: Chill
  1. 1
    ID card verification.Check GitHub repository.Verify MAD-1 collaborator.
    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
    Download project from Viva Booking portal and run it.
    Times asked 1
    Official solution

    SimpleExaminer submitted ZIP chahta hai, local extra changes nahi.

    Portal se ZIP download → extract → venv → pip install -r requirements.txt → flask run / python app.py.
    Checksum maange to hash match karke dikhao. Camera/OPPE setup unke instructions.
    Linux/Mac: paths, gunicorn; Windows paths alag ho to relative paths use karo.
    Do browsers: admin + user parallel demo impressive lagta hai.

  3. 3
    Register as Company.Create/Add a Drive (or Job Post).Approve Company/Drive.
    Times asked 1
    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 }}
  4. 4
    Register as Student.Apply for a Job/Drive.Shortlist a Student.
    Times asked 1
    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.

  5. 5
    Login as the shortlisted/blacklisted student.Demonstrate Blacklisting.
    Times asked 1
    Official solution

    SimpleBlacklist flag user/company ko block karta hai — login ya features band.

    user.is_blacklisted = True; db.session.commit()
    Login: if user.is_blacklisted: flash('Blocked'); return
    Student dashboard: blacklisted company ke drives hide — query filter join Company.is_blacklisted==False.
    Demo: admin blacklist → us user se login fail.

  6. 6
    Demonstrate Search functionality.
    Times asked 1
    Official solution

    SimpleSearch box GET form, backend query filter, results template mein.

    q = request.args.get('q', '').strip()
    results = Doctor.query.filter(Doctor.name.ilike(f'%{q}%')).all() if q else []
    return render_template('search.html', results=results, q=q)

    Jinja: {{ results|length }} matches. Empty: 'No results'.
    JS-only filter: saara data pehle load, client filter — chhote lists. Bada data: server search.
    Search generally GET (shareable URL). Count: len(results) ya db.func.count.

  7. 7
    Show only active companies.Explain Resume upload and company accessibility.
    Times asked 1
    Official solution

    SimpleFile upload form multipart, Flask request.files, disk ya DB path store.

    <form method='POST' enctype='multipart/form-data'>
    f = request.files.get('resume')
    f.save(os.path.join('uploads', secure_filename(f.filename)))

    Sensitive docs uploads/ web se seedha serve mat karo, login check ke baad send_from_directory.
    Student resume edit: policy — allowed hai to Update route, nahi to freeze after apply.

  8. 8
    Explain Admin, Company and Student dashboards.
    Times asked 1
    Official solution

    Examiner code pe ungli rakh ke poochta hai — panic mat karo, 4-line formula bolo.

    1) Yeh file/line kya role hai (model / route / template / config)?
    2) Input kahan se aata hai (form, URL <id>, session, JSON)?
    3) DB pe kya query/write?
    4) Output kya (render_template / redirect / jsonify)?

    Example

    @app.route('/book/<int:id>', methods=['POST']) — logged-in user session se, trek id URL se, Booking add, slots--, redirect history.

    Unknown line: imports (request, url_for, flash), decorators, if checks, commit — har keyword ka reason ready rakho.

  9. 9
    Explain placement status flow.
    Times asked 1
    Official solution

    Examiner code pe ungli rakh ke poochta hai — panic mat karo, 4-line formula bolo.

    1) Yeh file/line kya role hai (model / route / template / config)?
    2) Input kahan se aata hai (form, URL <id>, session, JSON)?
    3) DB pe kya query/write?
    4) Output kya (render_template / redirect / jsonify)?

    Example

    @app.route('/book/<int:id>', methods=['POST']) — logged-in user session se, trek id URL se, Booking add, slots--, redirect history.

    Unknown line: imports (request, url_for, flash), decorators, if checks, commit — har keyword ka reason ready rakho.

  10. 10
    Explain approval/rejection/blacklisting workflow.Explain what happens after rejecting a company/drive/job.
    Times asked 1
    Official solution

    SimpleBlacklist flag user/company ko block karta hai — login ya features band.

    user.is_blacklisted = True; db.session.commit()
    Login: if user.is_blacklisted: flash('Blocked'); return
    Student dashboard: blacklisted company ke drives hide — query filter join Company.is_blacklisted==False.
    Demo: admin blacklist → us user se login fail.

  11. 11
    Explain dashboard functionality.Explain database relationships.
    Times asked 1
    Official solution

    Examiner code pe ungli rakh ke poochta hai — panic mat karo, 4-line formula bolo.

    1) Yeh file/line kya role hai (model / route / template / config)?
    2) Input kahan se aata hai (form, URL <id>, session, JSON)?
    3) DB pe kya query/write?
    4) Output kya (render_template / redirect / jsonify)?

    Example

    @app.route('/book/<int:id>', methods=['POST']) — logged-in user session se, trek id URL se, Booking add, slots--, redirect history.

    Unknown line: imports (request, url_for, flash), decorators, if checks, commit — har keyword ka reason ready rakho.

  12. 12
    Explain any route/function pointed out by the examiner.
    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.

  13. 13
    Explain filtering/query logic.
    Times asked 1
    Official solution

    Yeh list filter/sort/display task hai. Query badlo, template same rakh sakte ho.

    rows = Model.query.filter_by(status='approved').order_by(Model.name.asc()).all()

    Jinja: {% for r in rows %}<tr><td>{{ r.name|upper }}</td></tr>{% endfor %}

    {{ rows|length }} count dikhane ke liye.

    Alphabet sort: order_by(Model.name). Status filter: filter_by(status='pending').
    Assigned staff column: relationship se {{ booking.staff.name }}.

  14. 14
    Show only shortlisted students.
    Times asked 1
    Official solution

    Yeh list filter/sort/display task hai. Query badlo, template same rakh sakte ho.

    rows = Model.query.filter_by(status='approved').order_by(Model.name.asc()).all()

    Jinja: {% for r in rows %}<tr><td>{{ r.name|upper }}</td></tr>{% endfor %}

    {{ rows|length }} count dikhane ke liye.

    Alphabet sort: order_by(Model.name). Status filter: filter_by(status='pending').
    Assigned staff column: relationship se {{ booking.staff.name }}.

  15. 15
    Show student application status instead of application date.
    Times asked 1
    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.

  16. 16
    Show only active companies.
    Times asked 1
    Official solution

    Yeh list filter/sort/display task hai. Query badlo, template same rakh sakte ho.

    rows = Model.query.filter_by(status='approved').order_by(Model.name.asc()).all()

    Jinja: {% for r in rows %}<tr><td>{{ r.name|upper }}</td></tr>{% endfor %}

    {{ rows|length }} count dikhane ke liye.

    Alphabet sort: order_by(Model.name). Status filter: filter_by(status='pending').
    Assigned staff column: relationship se {{ booking.staff.name }}.

  17. 17
    Show only approved drives.Show only jobs with salary > ₹1 lakh.
    Times asked 1
    Official solution

    Yeh list filter/sort/display task hai. Query badlo, template same rakh sakte ho.

    rows = Model.query.filter_by(status='approved').order_by(Model.name.asc()).all()

    Jinja: {% for r in rows %}<tr><td>{{ r.name|upper }}</td></tr>{% endfor %}

    {{ rows|length }} count dikhane ke liye.

    Alphabet sort: order_by(Model.name). Status filter: filter_by(status='pending').
    Assigned staff column: relationship se {{ booking.staff.name }}.

  18. 18
    Merge ongoing and completed drives into one table.
    Times asked 1
    Official solution

    Yeh MAD-1 viva question tumhare project ke context se linked hai. Short answer is structure se do:

    Pehle 1 line definition/purpose, phir tumhare project ka example, phir chhota code/flow.

    Typical Flask flowBrowser request → @app.route controller → SQLAlchemy model/DB → Jinja template response.

    Auth: session['user_id'] + role check. CRUD: add/commit, query.all, field update, delete.
    Live change maange to: related model → route → template, phir browser refresh karke dikhao.

    Example (generic create):
    obj = Model(name=request.form.get('name'))

    db.session.add(obj); db.session.commit()
    return redirect(url_for('list_view'))
  19. 19
    Show only pending appointments.Show only cancelled appointments.Show only completed appointments.
    Times asked 1
    Official solution

    Yeh list filter/sort/display task hai. Query badlo, template same rakh sakte ho.

    rows = Model.query.filter_by(status='approved').order_by(Model.name.asc()).all()

    Jinja: {% for r in rows %}<tr><td>{{ r.name|upper }}</td></tr>{% endfor %}

    {{ rows|length }} count dikhane ke liye.

    Alphabet sort: order_by(Model.name). Status filter: filter_by(status='pending').
    Assigned staff column: relationship se {{ booking.staff.name }}.

  20. 20
    Show only applied drives (filter by status).
    Times asked 2
    Official solution

    Yeh list filter/sort/display task hai. Query badlo, template same rakh sakte ho.

    rows = Model.query.filter_by(status='approved').order_by(Model.name.asc()).all()

    Jinja: {% for r in rows %}<tr><td>{{ r.name|upper }}</td></tr>{% endfor %}

    {{ rows|length }} count dikhane ke liye.

    Alphabet sort: order_by(Model.name). Status filter: filter_by(status='pending').
    Assigned staff column: relationship se {{ booking.staff.name }}.

  21. 21
    Show only applied drives (filter by status).
    Times asked 2
    Official solution

    Yeh list filter/sort/display task hai. Query badlo, template same rakh sakte ho.

    rows = Model.query.filter_by(status='approved').order_by(Model.name.asc()).all()

    Jinja: {% for r in rows %}<tr><td>{{ r.name|upper }}</td></tr>{% endfor %}

    {{ rows|length }} count dikhane ke liye.

    Alphabet sort: order_by(Model.name). Status filter: filter_by(status='pending').
    Assigned staff column: relationship se {{ booking.staff.name }}.

  22. 22
    Change button colour (green/blue/any colour).
    Times asked 1
    Official solution

    Simpleexaminer UI tweak maangta hai — CSS class ya inline, instantly dikhao.

    Button color: <button class='btn btn-success'> ya style='background:#22c55e;color:#fff'
    Navbar: navbar-dark bg-success / style='background:yellow' / fixed-bottom se neeche.
    Center: .wrap { display:flex; justify-content:center; align-items:center; min-height:100vh; }
    text-align:center heading ke liye. Bootstrap: d-flex justify-content-center, mx-auto, text-center.
    Hover: .btn:hover { opacity:0.8; transform:scale(1.02); }
    Half width: class='col-6' ya width:50%. Row→column: flex-direction:column / col-12 stack.
    Login card: card shadow p-4 mx-auto (max-width:400px).
    Table header green: th { background:green; color:white; } Bold column: td:nth-child(2){font-weight:bold}
    Box shadow: box-shadow: 4px 4px 12px rgba(0,0,0,.3);
    Background image: body { background: url('/static/bg.jpg') center/cover; }
    Reset button: <button type='reset'>Clear</button>
    Move button: ms-auto / position / flex order.
    Jinja dashboard heading: <h1>{{ user.name }}'s Dashboard</h1>

  23. 23
    Explain the query after making the changes.
    Times asked 1
    Official solution

    Examiner code pe ungli rakh ke poochta hai — panic mat karo, 4-line formula bolo.

    1) Yeh file/line kya role hai (model / route / template / config)?
    2) Input kahan se aata hai (form, URL <id>, session, JSON)?
    3) DB pe kya query/write?
    4) Output kya (render_template / redirect / jsonify)?

    Example

    @app.route('/book/<int:id>', methods=['POST']) — logged-in user session se, trek id URL se, Booking add, slots--, redirect history.

    Unknown line: imports (request, url_for, flash), decorators, if checks, commit — har keyword ka reason ready rakho.

  24. 24
    Which database did you use?
    Times asked 1
    Official solution

    SimpleSQLite file-based chhota DB, MySQL/Postgres server-based production DB.

    SQLite fayde: zero setup, ek .db file, MAD1/dev ke liye perfect, portable.

    Nuksaanconcurrent writes kam, user/password nahi, network access nahi, production scale nahi.

    MySQL: users, permissions, concurrent, replica. App factory mein URI change karke switch: sqlite:///app.db → mysql://...

  25. 25
    What is ORM? Which ORM have you used? Where is ORM initialized/used in your code?
    Times asked 1
    Official solution

    SimpleORM = Object Relational Mapping. Database tables ko Python classes/objects se map karta hai, raw SQL kam likhni padti hai.

    Bina ORM: cursor.execute('SELECT * FROM user WHERE id=?', [5])
    ORM se: User.query.get(5) ya db.session.get(User, 5)

    Example model

    class User(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        email = db.Column(db.String(120), unique=True)

    FaydePython mein soch sakte ho, SQL injection se protection (parameterized), relationships easy, DB switch thoda aasan.

    Nuksaancomplex queries slow/abstract, seekhne ki layer extra, kabhi raw SQL phir bhi chahiye.

    MAD1: SQLAlchemy (Flask-SQLAlchemy). Tables db.create_all() ya migrations se banti hain.


    SimpleSQLAlchemy Python ka sabse popular ORM hai. MAD1 mein Flask-SQLAlchemy wrapper use hota hai.

    db = SQLAlchemy(app)

    class Book(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        title = db.Column(db.String(80), nullable=False)
    
    Operations: db.session.add(obj), .commit(), .delete(obj), Model.query.all(), .filter_by(), .get_or_404(id).
    db.Model ek class hai (function nahi). db object engine + session + metadata hold karta hai.

    SQLALCHEMY_TRACK_MODIFICATIONS=False extra signals band karta hai, performance warning hatati hai.

  26. 26
    Which function connects backend and frontend? (render_template)
    Times asked 1
    Official solution

    Simplerender_template HTML file ko Jinja se process karke browser ko bhejta hai. Backend data ko frontend se jodta hai.

    return render_template('dashboard.html', user=user, treks=treks)

    File templates/dashboard.html honi chahiye.
    Keyword arguments template mein variables ban jaate hain: {{ user.name }}.
    Route kuch return na kare to Flask error. Boolean return typical HTML view ke liye nahi — string/Response chahiye.

  27. 27
    Authentication vs Authorization.HTTP Methods.
    Times asked 1
    Official solution

    SimpleAuthentication poochta hai "tu kaun hai?", Authorization poochta hai "tujhe yeh kaam karne ki permission hai?"

    Authentication: login. Username + password check karke prove karte ho ki tum genuine user ho. Success pe session/token milta hai.
    Authorization: uske baad role check. Admin hi parking lot delete kar sakta hai, normal user nahi.

    Example (Flask):
    # Authentication

    if user and check_password_hash(user.password, form_password):
        session['user_id'] = user.id
    
    # Authorization
    if session.get('role') != 'admin':
        abort(403)  # logged in ho, lekin allowed nahi

    Project example: student login = authentication. Student admin dashboard nahi khol sakta = authorization.
    Validation alag cheez hai (form sahi bhara hai ya nahi, jaise age 18+).

  28. 28
    Difference between GET and POST.Where have you used GET requests?
    Times asked 1
    Official solution

    SimpleGET data mangta hai (read), POST data bhejta hai (create/submit).

    GETURL mein dikhta hai, bookmark ho sakta hai, browser back/refresh safe hai, data URL query mein jaata hai. Search, page open, login form dikhana.

    POSTbody mein data jaata hai, URL mein password nahi dikhta, refresh pe dubara submit ho sakta hai. Login, register, form save.

    Example

    # page dikhana

    @app.route('/login', methods=['GET', 'POST'])
    def login():
        if request.method == 'GET':
            return render_template('login.html')
        # POST: form submit
        email = request.form.get('email')
        ...

    GET se theoretically data bhej sakte ho (?q=flask), lekin create/update ke liye nahi use karna — data log/history mein save ho jaata hai, length limit hoti hai.
    HTML form default GET hota hai; method='POST' likhna zaroori hai login/register pe.

  29. 29
    Frontend Validation vs Backend Validation.
    Times asked 1
    Official solution

    SimpleFrontend validation UX ke liye, Backend validation security ke liye. Dono chahiye, backend zyada important hai.

    Frontend: HTML required, minlength, JS/regex. User ko turant error dikhta hai. Bypass easy (DevTools / Postman).
    Backend: Flask route mein checks. Asli security yahi hai. Hacker frontend skip karke POST bhej sakta hai.

    Example frontend

    <input type='number' min='18' max='99' required>

    Example backend

    age = int(request.form.get('age') or 0)
    if age < 18 or age >= 100:
        flash('Invalid age')
        return redirect(url_for('register'))

    Viva line'Frontend convenience hai, backend source of truth hai.'

  30. 30
    MVC Architecture. CSS vs Bootstrap.
    Times asked 1
    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.

  31. 31
    Which Flask function is used for Jinja templating?
    Times asked 1
    Official solution

    SimpleJinja2 Flask ka template engine hai. HTML ke andar Python-jaisa data print/loop/if kar sakte ho.

    Bina Jinja har user ke liye alag HTML file. Jinja se ek template + data.

    {{ user.name }} print, {% for x in items %} loop, {% if %} condition, {% extends %} layout.

    Example routereturn render_template('dash.html', treks=treks)

    dash.html: {% for t in treks %}<li>{{ t.name }}</li>{% endfor %}

    HTML files templates/ folder mein isliye kyunki Flask default wahan dhundhta hai. render_template Jinja ko run karta hai.
    Boolean Jinja handle karta hai: {% if user.is_admin %}.

  32. 32
    Explain ORM implementation in your project.
    Times asked 1
    Official solution

    SimpleORM = Object Relational Mapping. Database tables ko Python classes/objects se map karta hai, raw SQL kam likhni padti hai.

    Bina ORM: cursor.execute('SELECT * FROM user WHERE id=?', [5])
    ORM se: User.query.get(5) ya db.session.get(User, 5)

    Example model

    class User(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        email = db.Column(db.String(120), unique=True)

    FaydePython mein soch sakte ho, SQL injection se protection (parameterized), relationships easy, DB switch thoda aasan.

    Nuksaancomplex queries slow/abstract, seekhne ki layer extra, kabhi raw SQL phir bhi chahiye.

    MAD1: SQLAlchemy (Flask-SQLAlchemy). Tables db.create_all() ya migrations se banti hain.

  33. 33
    Explain frontend/backend validation in your code.
    Times asked 1
    Official solution

    SimpleFrontend user jo dekhta/click karta hai, Backend server logic + database.

    Frontend: HTML, CSS, Bootstrap, Jinja templates, thoda JS. Browser pe chalta hai.
    Backend: Flask routes, SQLAlchemy, session, validation. Python server pe.
    Data flow: form POST → Flask request.form → DB save → render_template/redirect → HTML dikha.
    MAD1 typical stack: Flask + Jinja + SQLAlchemy + SQLite + Bootstrap.

  34. 34
    Explain authorization implementation.
    Times asked 1
    Official solution

    SimpleAuthentication session se, Authorization role/ownership check se.

    def admin_required(f):
        @wraps(f)
        def wrap(*a,**k):
            if session.get('role') != 'admin':
                abort(403)
            return f(*a,**k)
        return wrap

    Jinja: {% if session['role']=='admin' %}<a href='/admin'>Admin</a>{% endif %}
    Yeh hide hai, security nahi — route pe check zaroori. Admin authenticated bhi hai (logged in) aur authorized bhi (role).

  35. 35
    Explain search functionality. Explain filtering queries.
    Times asked 1
    Official solution

    SimpleSearch box GET form, backend query filter, results template mein.

    q = request.args.get('q', '').strip()
    results = Doctor.query.filter(Doctor.name.ilike(f'%{q}%')).all() if q else []
    return render_template('search.html', results=results, q=q)

    Jinja: {{ results|length }} matches. Empty: 'No results'.
    JS-only filter: saara data pehle load, client filter — chhote lists. Bada data: server search.
    Search generally GET (shareable URL). Count: len(results) ya db.func.count.

  36. 36
    Explain how student duplicate applications are prevented.
    Times asked 1
    Official solution

    SimpleDuplicate/overbook rokne ke liye DB constraint + route check dono.

    Pehle query: Booking.query.filter_by(user_id=uid, trek_id=tid).first()
    Agar exists: flash('Already booked'); return
    Slots: if trek.available <= 0: reject else trek.available -= 1; commit
    Race condition: unique(user_id, trek_id) constraint — do tabs se double click pe bhi ek hi row.
    Blacklist: login pe is_blacklisted check.
    Active drive limit: if Company ke paas status=open drive hai to naya mat banne do.

  37. 37
    Explain how CGPA update works.Explain how placement status changes across dashboards.
    Times asked 1
    Official solution

    Examiner code pe ungli rakh ke poochta hai — panic mat karo, 4-line formula bolo.

    1) Yeh file/line kya role hai (model / route / template / config)?
    2) Input kahan se aata hai (form, URL <id>, session, JSON)?
    3) DB pe kya query/write?
    4) Output kya (render_template / redirect / jsonify)?

    Example

    @app.route('/book/<int:id>', methods=['POST']) — logged-in user session se, trek id URL se, Booking add, slots--, redirect history.

    Unknown line: imports (request, url_for, flash), decorators, if checks, commit — har keyword ka reason ready rakho.

  38. 38
    Explain how admin approves/rejects/blacklists users.
    Times asked 1
    Official solution

    SimpleBlacklist flag user/company ko block karta hai — login ya features band.

    user.is_blacklisted = True; db.session.commit()
    Login: if user.is_blacklisted: flash('Blocked'); return
    Student dashboard: blacklisted company ke drives hide — query filter join Company.is_blacklisted==False.
    Demo: admin blacklist → us user se login fail.

  39. 39
    Explain how data is stored and retrieved.
    Times asked 1
    Official solution

    Examiner code pe ungli rakh ke poochta hai — panic mat karo, 4-line formula bolo.

    1) Yeh file/line kya role hai (model / route / template / config)?
    2) Input kahan se aata hai (form, URL <id>, session, JSON)?
    3) DB pe kya query/write?
    4) Output kya (render_template / redirect / jsonify)?

    Example

    @app.route('/book/<int:id>', methods=['POST']) — logged-in user session se, trek id URL se, Booking add, slots--, redirect history.

    Unknown line: imports (request, url_for, flash), decorators, if checks, commit — har keyword ka reason ready rakho.

  40. 40
    Explain relationships between tables.
    Times asked 3
    Official solution

    SimpleRelationships tables ko jodti hain taaki related data object se mil jaaye.

    One-to-Many: User → kai Posts. posts = relationship('Post', backref='author'). FK post.user_id.
    One-to-One: User → Profile. uselist=False + unique FK. Profile.user_id unique.
    Many-to-Many: Student ↔ Drive. Junction/secondary table (student_id, drive_id).

    Example 1-1:

    class Profile(db.Model):
        user_id = db.Column(db.Integer, db.ForeignKey('user.id'), unique=True)
        user = db.relationship('User', back_populates='profile', uselist=False)

    1-M ko 1-1: child FK pe unique=True + uselist=False.
    Parent-child: parent PK, child FK. Junction table extra columns bhi rakh sakti hai (applied_on).

  41. 41
    Explain a portion of your code.
    Times asked 1
    Official solution

    SimpleFlask default port 5000. Change: app.run(port=8000) ya env PORT, ya flask run --port 8000.

    if __name__ == '__main__':
        app.run(debug=True, host='0.0.0.0', port=8000)

    Do apps ek saath: alag ports. Occupied port: error, doosra number try.

Created for educational purposes only. Questions are based on students' personal experiences and may not reflect actual exam content.