Viva prep · Real questions · Student experiences Enroll in Bootcamp

Proctor workspace

Proctor LEVEL1_VIVA1

Share your experience Add your viva experience here
89 Questions
16 Sets
0 Topics
2 Reviews
Tips for this examiner: Keep practicing this sheet .

Student reviews

Sheet response MAD1

My proctor had a very calm temperament.

Questions remembered
  1. First, ID card verification.
  2. Checked GitHub profile, total commit counts, and collaborator status.
  3. Live demonstration of the project.
  4. Finally, asked to write an HTML Table code on Notepad and implement Jinja2 loop inside it.
  5. Total Duration: 15-20 Min
Anonymous MAD1

Very friendly in nature give us time also if thing not working also suggest and very friendly

Make sure your each of the functionality mention in core milestone working well each of it or else he will catch and ask why this happen

Questions remembered
  1. 1.) If having checksum ready then provide that or else download project from portal
  2. 2.) Install dependencies(if virtual env created)
  3. Explain the whole demo to proctor each of the functionality in 10 min
  4. 3.) Add, edit doctor, and edit patient from admin side
  5. 4.) Show demo by searching doctor and patient from admin side
  6. 5.) Remove one doctor try to login from his side
  7. 6.) Go to patient dashboard to perform live demo by booking same appointment at same time and same day from patient.and check whether it preventing or not
  8. 7.) Go to doctor dashboard cancel patient appointment and it should reflect in patient dashboard

Approved viva sets

  1. 1
    - Show ID and GitHub page.
    Times asked 1
  2. 2
    - Download code from portal and run it.
    Times asked 2
  3. 3
    - Show login page and login route code.
    Times asked 2
  4. 4
    - Modify login code to print email when you click on the login button.
    Times asked 2
  5. 5
    - Login to the page and open the page in incognito window. Why in incognito you are redirected to login rather than to the portal with your credentials (Explain JWT and routing). Show the code for the same too.
    Times asked 1
  6. 6
    - Is caching done? What all data is cached? Why so? Is there any timeout set? When or how does this update?
    Times asked 2
  7. 7
    - Have you done any CSV exports? Show the same. (Explained how I had done and fallback as well)
    Times asked 2
  8. 8
    - Wished all the very best for Level 2.
    Times asked 2
Advice: - Be respectful and polite. Proctor is very respectful and accommodating. Do not stress, proctor is very calm. Proctor will give pointers or hints if things get stuck. - If you can't find the code, explain everything related to what code is asked and how you implemented and why such scenarios happen. - When coding, try to explain what you are doing and how exactly you have done it and why rather than coding in silence. - Might sometimes indirectly check all requirements through specific questions or asking for particular implementations or functionality demo. (Session-based logins, Celery Tasks, MailHog, Caching, Vue Routing, etc.). - Try to explain theory and other choices made when showing the code or showing the working of that feature. Try to tie theory concepts and implementation choices directly when showing so less chance of more questions asked. - Proctor may join early so make sure to join at least 10-15 earlier. It will be advantageous especially since most people might have issues with running the code; you can use that extra time to setup everything accordingly to make sure your code runs with no issues.
  1. 1
    Create Test page at navbar in admin part , (make sure it is visible in the website , BOTH FRONTEND+BACKEND)
    Times asked 2
  2. 2
    Cache
    Times asked 2
  3. 3
    Celery Output
    Times asked 2
Advice: He gives time for code part , helpful
  1. 1
    Show id, GitHub collaborator, and commits
    Times asked 2
  2. 2
    Demo of project
    Times asked 2
  3. 3
    “tell me about caching”
    Times asked 2
  4. 4
    Asked about CLI and CDN
    Times asked 2
  5. 5
    What is celery worker
    Times asked 1
  6. 6
    Open a notepad and write a route for login
    Times asked 2
  7. 7
    —in this he asked me what if the user gives empty values to email and password
    Times asked 2
  8. 8
    — fronted backend validation? Which can be easily bypassed?
    Times asked 2
  9. 9
    — if front end validation was easily bypassed and empty values are given how will you handle?
    Times asked 2
  10. 10
    Vue code to get info from user and call api for login
    Times asked 2
Advice: He was not very responsive, he was too silent for so long. Maybe when he asks to write code, finish writing and Inform him you finished. Gives a little feedback at the end. However I messed up mine.
  1. 1
    Asked about celery
    Times asked 2
  2. 2
    asked about reddis
    Times asked 2
  3. 3
    asked about scheduling i.e beat vs worker
    Times asked 2
  4. 4
    asked if i have implemented all features (i did all the core features)
    Times asked 2
  5. 5
    coding ques-
    Times asked 2
  6. 6
    how to prevent those user whos name start from N from login in.
    Times asked 2
Advice: He is Veryy Cill , but he saidd he has failed more than 50% of students he got so read the sheet throghly before facing him
  1. 1
    What is caching 3.Show me where caching is in your code 4.What is ORMS
    Times asked 2
  2. 2
    Explain your project as if you are explaining to a 5 year old
    Times asked 2
  3. 3
    Write code for v-for in notepad I also showed the demonstration for the project
    Times asked 2
Advice: Prepare for theory part well. Try giving elaborate answers for the theory questions. You can learn the rest from the viva sheet. Asked mostly from that only.
  1. 1
    Vue lifecycle hooks.
    Times asked 3
  2. 2
    One way two way binding
    Times asked 2
  3. 3
    Token storage
    Times asked 2
  4. 4
    Celery and redis working
    Times asked 4
  5. 5
    For coding - button to click hi, and login route
    Times asked 2
Advice: If you answer his questions in detail then no issue he is cool
  1. 1
    Show me collaborator 1.What is lifecycle hooks
    Times asked 2
  2. 2
    Did you used token based or session based. 3.Where is token stored 4.What is celery and how it works
    Times asked 2
  3. 3
    Show me your model.py and tell me what is lazy loading
    Times asked 2
  4. 4
    Write a vue component for a button. When click it say hi.
    Times asked 2
  5. 5
    Write a vue router for the dob. That take dob as a input and print the date of birth.
    Times asked 2
  6. 6
    And then demonstration of the project with all core functionalities
    Times asked 2
Advice: Keep practicing this sheet .
  1. 1
    First, ID card verification.
    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
    Checked GitHub profile, total commit counts, and 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.

  3. 3
    Finally, asked to write an HTML Table code on Notepad and implement Jinja2 loop inside it.
    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
    Total Duration: 15-20 Min
    Times asked 1
    Official solution

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

Advice: My proctor had a very calm temperament.
  1. 1
    1.) If having checksum ready then provide that or else download project 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
    2.) Install dependencies(if virtual env created)
    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
    Explain the whole demo to proctor each of the functionality in 10 min
    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.

  4. 4
    3.) Add, edit doctor, and edit patient from admin 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.

  5. 5
    4.) Show demo by searching doctor and patient from admin side
    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.) Remove one doctor try to login from his side
    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.) Go to patient dashboard to perform live demo by booking same appointment at same time and same day from patient.and check whether it preventing or not
    Times asked 1
    Official solution

    SimpleEdge cases: duplicate booking, full capacity, wrong role URL, empty search, invalid id.

    Example

    if Spot.query.get_or_404(spot_id).status != 'available':
        flash('Already taken')
        return redirect(...)
  8. 8
    7.) Go to doctor dashboard cancel patient appointment and it should reflect in patient 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.

Advice: Very friendly in nature give us time also if thing not working also suggest and very friendly Make sure your each of the functionality mention in core milestone working well each of it or else he will catch and ask why this happen
  1. 1
    - Download code from portal and run it.
    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
    - Show login page and login route code.
    Times asked 2
    Official solution

    SimpleLogin flow pehle poochta hai "tu kaun hai?", token milne ke baad har API pe wohi proof dikhate ho.

    Authentication step: Vue form email + password JSON POST karta hai. Flask user dhoondhta hai, check_password_hash se prove karta hai ki tum genuine ho. Galat 401. Sahi pe JWT + role milta hai — yeh session/token hai.

    Vue localStorage (ya cookie) mein token rakhta hai, dashboard pe router.push. Aage ki har fetch header: Authorization: Bearer <token>. @jwt_required identity check (authentication). @roles_required('admin') permission check (authorization) — logged in ho, lekin allowed nahi to 403.

    Validation alag cheez hai: empty email, password 8+ — form sahi bhara hai ya nahi. Woh identity prove nahi karta.

    Logout = client token delete + login page. Server blacklist optional. Password response JSON mein kabhi mat bhejo.

    Example

    # Authentication
    @app.route('/api/login', methods=['POST'])
    def login():
        u = User.query.filter_by(email=data['email']).first()
        if not u or not check_password_hash(u.password, data['password']):
            return jsonify(msg='bad'), 401
        return jsonify(token=create_access_token(u.id), role=u.role)
    
    # baad ki APIs
    # Authorization: Bearer <token>
    if current_user.role != 'admin':
        abort(403)

    Project example: Login.vue POST /api/login → token LS → interceptor. Student token se admin route = 403. Empty form = validation, galat password = 401.

    Viva tipNetwork tab mein password body dikhega localhost pe — prod HTTPS. Response mein hash/password echo mat karo.

  3. 3
    - Modify login code to print email when you click on the login button.
    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.

  4. 4
    - Is caching done? What all data is cached? Why so? Is there any timeout set? When or how does this update?
    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
    - Have you done any CSV exports? Show the same. (Explained how I had done and fallback as well)
    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.

  6. 6
    - Wished all the very best for Level 2.
    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.

Advice: - Be respectful and polite. Proctor is very respectful and accommodating. Do not stress, proctor is very calm. Proctor will give pointers or hints if things get stuck. - If you can't find the code, explain everything related to what code is asked and how you implemented and why such scenarios happen. - When coding, try to explain what you are doing and how exactly you have done it and why rather than coding in silence. - Might sometimes indirectly check all requirements through specific questions or asking for particular implementations or functionality demo. (Session-based logins, Celery Tasks, MailHog, Caching, Vue Routing, etc.). - Try to explain theory and other choices made when showing the code or showing the working of that feature. Try to tie theory concepts and implementation choices directly when showing so less chance of more questions asked. - Proctor may join early so make sure to join at least 10-15 earlier. It will be advantageous especially since most people might have issues with running the code; you can use that extra time to setup everything accordingly to make sure your code runs with no issues.
  1. 1
    Create Test page at navbar in admin part , (make sure it is visible in the website , BOTH FRONTEND+BACKEND)
    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.

  2. 2
    Cache
    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
    Celery Output
    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.

Advice: He gives time for code part , helpful
  1. 1
    Show id, GitHub collaborator, and commits
    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
    “tell me about 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.

  3. 3
    Asked about CLI and CDN
    Times asked 2
    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.

  4. 4
    Open a notepad and write a route for login
    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'
  5. 5
    —in this he asked me what if the user gives empty values to email and password
    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
    — fronted backend validation? Which can be easily bypassed?
    Times asked 2
    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')
  7. 7
    — if front end validation was easily bypassed and empty values are given how will you handle?
    Times asked 2
    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')
  8. 8
    Vue code to get info from user and call api for login
    Times asked 2
    Official solution

    SimpleLogin flow pehle poochta hai "tu kaun hai?", token milne ke baad har API pe wohi proof dikhate ho.

    Authentication step: Vue form email + password JSON POST karta hai. Flask user dhoondhta hai, check_password_hash se prove karta hai ki tum genuine ho. Galat 401. Sahi pe JWT + role milta hai — yeh session/token hai.

    Vue localStorage (ya cookie) mein token rakhta hai, dashboard pe router.push. Aage ki har fetch header: Authorization: Bearer <token>. @jwt_required identity check (authentication). @roles_required('admin') permission check (authorization) — logged in ho, lekin allowed nahi to 403.

    Validation alag cheez hai: empty email, password 8+ — form sahi bhara hai ya nahi. Woh identity prove nahi karta.

    Logout = client token delete + login page. Server blacklist optional. Password response JSON mein kabhi mat bhejo.

    Example

    # Authentication
    @app.route('/api/login', methods=['POST'])
    def login():
        u = User.query.filter_by(email=data['email']).first()
        if not u or not check_password_hash(u.password, data['password']):
            return jsonify(msg='bad'), 401
        return jsonify(token=create_access_token(u.id), role=u.role)
    
    # baad ki APIs
    # Authorization: Bearer <token>
    if current_user.role != 'admin':
        abort(403)

    Project example: Login.vue POST /api/login → token LS → interceptor. Student token se admin route = 403. Empty form = validation, galat password = 401.

    Viva tipNetwork tab mein password body dikhega localhost pe — prod HTTPS. Response mein hash/password echo mat karo.

Advice: He was not very responsive, he was too silent for so long. Maybe when he asks to write code, finish writing and Inform him you finished. Gives a little feedback at the end. However I messed up mine.
  1. 1
    Asked about celery
    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
    asked about reddis
    Times asked 2
    Official solution

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

  3. 3
    asked about scheduling i.e beat vs 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.

  4. 4
    asked if i have implemented all features (i did all the core 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.

  5. 5
    coding ques-
    Times asked 2
    Official solution

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

  6. 6
    how to prevent those user whos name start from N from login in.
    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: He is Veryy Cill , but he saidd he has failed more than 50% of students he got so read the sheet throghly before facing him
  1. 1
    What is caching 3.Show me where caching is in your code 4.What is ORMS
    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
    Explain your project as if you are explaining to a 5 year old
    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
    Write code for v-for in notepad I also showed the demonstration for the 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.

Advice: Prepare for theory part well. Try giving elaborate answers for the theory questions. You can learn the rest from the viva sheet. Asked mostly from that only.
  1. 1
    One way two way binding
    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.

  2. 2
    Token storage
    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
    Celery and redis working
    Times asked 4
    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.

  4. 4
    For coding - button to click hi, and login route
    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: If you answer his questions in detail then no issue he is cool
  1. 1
    Show me collaborator 1.What is lifecycle hooks
    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
    Did you used token based or session based. 3.Where is token stored 4.What is celery and how it works
    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().

  3. 3
    Show me your model.py and tell me what is lazy loading
    Times asked 2
    Official solution

    Simplelazy loading: related objects kab load hon. lazy=True default (access pe query). joined/eager pehle se join.

  4. 4
    Write a vue component for a button. When click it say hi.
    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
    Write a vue router for the dob. That take dob as a input and print the date of birth.
    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
    And then demonstration of the project with all core functionalities
    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: Keep practicing this sheet .
Created for educational purposes only. Questions are based on students' personal experiences and may not reflect actual exam content.