Viva prep · Real questions · Student experiences Enroll in Bootcamp

Proctor workspace

Proctor APPDEV_LEVEL1_VIVA2

Share your experience Add your viva experience here
238 Questions
29 Sets
0 Topics
0 Reviews
Tips for this examiner: Transitioning to the proctor interaction, the overall experience was very positive and encouraging. The proctor created a comfortable environment right from the beginning of the session. As soon as he joined the meeting, he greeted me warmly and asked how I was doing, which helped ease some of my initial nervousness. He was attentive enough to notice that I seemed slightly anxious and made a conscious effort to motivate and reassure me, which significantly improved my confidence during the interaction.

Throughout the viva, his tone remained polite, patient, and supportive, making it easier to communicate openly without feeling intimidated. After the viva concluded, I took the opportunity to ask for feedback on my performance. He responded thoughtfully and constructively, pointing out that I should focus more on improving both my understanding of theoretical concepts and my ability to implement code changes effectively. His feedback was clear, helpful, and delivered in a kind manner, making it easier to understand where I need to improve without feeling discouraged.

Student reviews

No student reviews for this proctor yet.

Approved viva sets

  1. 1
    List all the companies on the landing page.
    Times asked 2
  2. 2
    Change the profile page so that the information entered during signup can be edited.
    Times asked 2
  3. 3
    Change the form so that the information can be updated, ensuring both the frontend and backend are updated accordingly.
    Times asked 2
  4. 4
    Authentication and Authorization: - Where do I have authentication and authorization in my code? - What am I using for authentication and authorization?
    Times asked 2
  5. 5
    const and let: - Why am I using const here? - Why am I using let here? - Explain based on the code.
    Times asked 2
  6. 6
    Caching: - What am I caching in the application? - Where is the caching code implemented?
    Times asked 2
Advice: The proctor is polite just answer to the best of ur knowledge.
  1. 1
    Good Morning and Greetings
    Times asked 2
  2. 2
    Asked to show github, collaborator
    Times asked 2
  3. 3
    Implement demo
    Times asked 2
  4. 4
    Don't remember a lot coz it lasted 40 minutes But majority from Database
    Times asked 2
  5. 5
    Asked me to code for a post route for creating new user and I messed up but given the answer to me as well
    Times asked 2
  6. 6
    At the end he told me thank you for your time giving in the session have a nice day ahead.
    Times asked 2
  7. 7
    The duration got increased coz he was asking particular lines as well.
    Times asked 2
Advice: He is super chill and one of the most amazing proctors. I actually messed at very end when he asked me to code I just messed up but he given me solution as well. Bhagwaan hai.
  1. 1
    Celery: What does .delay() do when calling a Celery task?
    Times asked 2
  2. 2
    Flask Coding: Write a simple POST route that accepts JSON data (username and email), creates a new user, and commits it to the SQL database.
    Times asked 2
  3. 3
    Database Logic: If the database file is deleted and the backend is rerun, will the application still work? Where exactly is the database created in the code?
    Times asked 2
  4. 4
    JavaScript Variables: What is the difference between const and let? Why did you use const for the search query variable instead of let?
    Times asked 2
  5. 5
    JavaScript Operators: What is the difference between single =, double ==, and triple ===?
    Times asked 2
  6. 6
    Caching: How exactly is Redis being used in your application?
    Times asked 2
  7. 7
    Live UI Edits: Modify the login page to put the emoji on top and change "Welcome back" to "Good morning" on the next line.
    Times asked 2
  8. 8
    App Logic Demo: What happens if all the slots are full? What will the user get to see?
    Times asked 2
  9. 9
    Background Jobs Demo: Demonstrate the CSV export functionality and the automated email reminders.
    Times asked 2
Advice: He was super chill, Be confident and if u are unsure u can say him , he will guide u on that way, be sure of what u have done in the code
  1. 1
    how and where you are implementing caching
    Times asked 2
  2. 2
    what is @jwt_required doing
    Times asked 2
  3. 3
    why we are using const response, not var and let
    Times asked 2
  4. 4
    few other questions cant remember
    Times asked 2
  1. 1
    Based on the video of the viva, here are the technical and conceptual questions asked by the proctor to the student:
    Times asked 2
  2. 2
    * **ORM Model Creation**: Can we write an SQLAlchemy model for a Report with an integer ID (primary key), a string title, and a boolean is_generated flag defaulting to False?
    Times asked 1
  3. 3
    * **Celery Delay Method**: What is the functionality of the `.delay()` method when using Celery for background tasks in Python?
    Times asked 2
  4. 4
    * **Redis Usage**: How are you using Redis in your application (e.g., message broker between Celery and Flask, and caching Vue front-end pages)?
    Times asked 2
  5. 5
    * **Authentication**: How are you authenticating users (e.g., using JSON Web Tokens / JWT)?
    Times asked 2
  6. 6
    * **Page Refresh Session Persistence**: If a user is logged in with a JWT-based authentication system and refreshes the page, will they get logged out?
    Times asked 2
  7. 7
    * **Browser Close Behavior**: What happens if you close the browser and restart the application? Will the JWT token persist in local storage?
    Times asked 2
  8. 8
    * **Storage Comparison**: How does local storage differ from session storage and cookies?
    Times asked 2
  9. 9
    * **Database Re-generation**: If you delete the SQLite database file (`.placement-portal.db`) and restart the Flask server, will the database file get generated again, and will all the tables get recreated?
    Times asked 2
  10. 10
    * **DB Add vs. Commit**: What is the difference between `db.session.add()` and `db.session.commit()` in SQLAlchemy?
    Times asked 1
  11. 11
    * **CORS**: Are you using cross-origin resource sharing (CORS) in your application, and how is it configured?
    Times asked 2
  12. 12
    * **JavaScript Variable Declarations**: Why did you choose `const` instead of `let` or `var` for variable declarations in JavaScript?
    Times asked 2
  13. 13
    * **JavaScript Typing**: Is JavaScript a statically typed language or a dynamically typed language?
    Times asked 2
  1. 1
    I was asked to show the GitHub Collab first then he started the viva
    Times asked 2
  2. 2
    1)write a celery task to add two numbers which triggers every 5 min. I clearly told him I have used ai to write the celery and redis part he asked what have you implemented on your own I said api and db part
    Times asked 2
  3. 3
    2)write code to make a user table with id, username and role in notepad
    Times asked 2
  4. 4
    3)show backend jobs celery(output mail and all)
    Times asked 1
  5. 5
    4)which line in code makes the database
    Times asked 2
  6. 6
    5)he asked what have I used for cache I told jwt and showed him in browser there he asked what is local storage,cookies and session storage whats the difference
    Times asked 2
  7. 7
    6)he asked me to show any view code i choose the login page over there he saw === was used he asked whats the difference between == and ===
    Times asked 2
  8. 8
    7) he asked that's the router.push used for
    Times asked 2
  9. 9
    I guess that's it then he gave some tips for level 2 and that's it
    Times asked 1
Advice: Just stay calm he's a chill guy he's more intrested in the database part and asks questions seeing your code mainly if you don't know anything just say him clearly he will change the question All the best :)
  1. 1
    Frontend -> why async await used
    Times asked 1
  2. 2
    Backend-> celery task
    Times asked 2
  3. 3
    Overall-> Authentication v/s Authorization, jwt pipeline theory(name only), show few features if exist
    Times asked 2
Advice: Just know your codebase
  1. 1
    He joined a little late around 12:06 AM and asked me the following questions:
    Times asked 2
  2. 2
    i didn't had a js script which would be used to check on phone number length so he asked how u will code it, just tell me verbally so that i can get ur understanding.
    Times asked 2
  3. 3
    he also asked several celery and redis questions which is basically in many ppls feedback, u can go through that as well.
    Times asked 2
  4. 4
    then he asked what approach would be usefull Vertical scalling or horzontal scalling in order to handle millions of upcoming api calls for the booking of treks slots, then I replied that there r no perfect solutions in distributed systems its just what we want to make tradeoffs with.
    Times asked 2
  5. 5
    and then I just wasted time in demonstrating the app and giving him an idea of how i have implemented those stuffs in frontend or backend and got him impressed by me.
    Times asked 2
Advice: Be calm and confident go through ur code so well that u can say about that for so looong
  1. 1
    Show git hub
    Times asked 2
  2. 2
    Project demonstration
    Times asked 6
  3. 3
    Tell whole thing how background jobs working (like from me he asked when you press generate CSV button what whole process is going on)
    Times asked 2
  4. 4
    Then tell to change schedule jobs to run every minute(crontab(minute="*"))
    Times asked 2
  5. 5
    How should you change port number (like if u using 5000 change to 8000 something like that)
    Times asked 2
  6. 6
    Then asked to open Vue pages and asked about different declaration (like const, var, let)
    Times asked 2
  7. 7
    Asked about code line (if __name__ = "__main__") what is this main for what u write it
    Times asked 2
Advice: Basically many of questions asked from sheet only(repeated), and observing code and asking why u write it.
  1. 1
    First he checks my GitHub
    Times asked 2
  2. 2
    Then told me to open my project fully and start all the server ( it took time but he is patiently waiting, no interruptions, nothing)
    Times asked 2
  3. 3
    Then he told me to login as staff
    Times asked 2
  4. 4
    And then I started my demonstration (around 10- 12 mins )
    Times asked 2
  5. 5
    Then saw my CSV where I generate it
    Times asked 2
  6. 6
    also saw my code also
    Times asked 2
  7. 7
    Are you caching anything
    Times asked 2
  8. 8
    Saw my search functionality
    Times asked 2
  9. 9
    What kind of authentication and authorisation you used
    Times asked 1
  10. 10
    What kind of authentication you used in your project
    Times asked 2
  11. 11
    Where is token stored
    Times asked 2
  12. 12
    Sqlite and sqlalchemy
    Times asked 2
  13. 13
    Asked about sqlite which is database and which is orm
    Times asked 2
  14. 14
    Where exactly the local storage present
    Times asked 2
  15. 15
    Have you used any orm
    Times asked 2
  16. 16
    Asked about frontend
    Times asked 2
  17. 17
    Axios
    Times asked 2
  18. 18
    Const response ( asked for other variable declarations also)
    Times asked 2
  19. 19
    Some more declarations
    Times asked 2
  20. 20
    Can we redeclare const response again
    Times asked 2
  21. 21
    Async and await
    Times asked 2
  22. 22
    Ends
    Times asked 2
  23. 23
    Then said
    Times asked 2
  24. 24
    All the best for level 2 viva and give me some suggestions also to prepare for level 2 like which questions they may ask and coding questions also
    Times asked 1
  25. 25
    That's all!
    Times asked 2
Advice: Proctor is so polite, patient, humble and supportive like he communicates very properly without making feel intimidated. He patiently wait while you think about your answer. He is very calm. He needs to check the knowledge so yeah prepare well. Also focus on frontend theory well. and complete the demonstration well and complete all the functionalities. Be calm. All the very best !
  1. 1
    Level 1
    Times asked 12
  2. 2
    GitHub repo for collaborator , student ID,
    Times asked 2
  3. 3
    He asked theory stuff from my project, he'll ask you to do demo of your project, he'll guide you thru it, like register as a new company, register as a student, and see the functionalities he wants to test
    Times asked 2
  4. 4
    Then he'll ask some theory stuff , he isn't asking for any code changes
    Times asked 2
  5. 5
    I did placement portal so he asked if you blacklist a company, and if a student is shortlisted, what happens to the data then
    Times asked 2
  6. 6
    And he asked me http codes and where I implemented put and patch in my project
    Times asked 2
  7. 7
    Http codes, basic stuff like that
    Times asked 2
  8. 8
    Can't remember more but more or less questions were from sheet
    Times asked 2
  9. 9
    he also tested my celery and redis and asked me what cache is and about memoize
    Times asked 2
  10. 10
    He also asked to show code and all for this
    Times asked 2
  11. 11
    I changed crontab minute = /*1 for celery and mera gmail pe directly mail aaya he saw that and utna hi
    Times asked 2
  12. 12
    If you use mounted anywhere he will ask that as well,
    Times asked 2
Advice: If it's level1 he'll most probably not ask for any code changes be confident and don't worry. All the best ! :)
  1. 1
    I was allowed to download project from portal and add environments.
    Times asked 2
  2. 2
    I started the server and panicked as the localserver was not working (it seems I missed the / path and added to /login only) . The proctor was very kind allowed me to check and find problem.
    Times asked 2
  3. 3
    Then I hopped onto the demo of the app.
    Times asked 2
  4. 4
    I answered some question related to the user / admin / staff functionality that my app has (like what one can do and what one cannot do).
    Times asked 2
  5. 5
    Then I showed my cache system in the app.
    Times asked 2
  6. 6
    As the UI part was showed I was directed to open the codebase and show celery.
    Times asked 2
  7. 7
    My celery worker was not working and I panicked so I began to explain it theoretically.
    Times asked 2
  8. 8
    Then I was told to open the models file and one question from there was asked.
    Times asked 2
Advice: 1. The proctor is very sweet and patient and allows you to check and rectify your mistakes. 2. At the end of viva I was advised to practice my frontend implementation, celery, and the functionality of users that I have gave to users.
  1. 1
    he asked me to do the setup 2.he asked me to show the github repo
    Times asked 2
  2. 2
    i Gave him demonstartion of the app (demo is for 25 minutes)
    Times asked 2
  3. 3
    he ask me difference between cdn vs cli (no coding change is asked ) At last he Said All the very best for your Viva2 i asked for feedback
    Times asked 2
Advice: Bhai matlab bhagwan hai ,,,literally he is so patient and so chill that he will greet you ,don't even intrupt means yaar just one of the best proctor till now .......
  1. 1
    I began by accessing GitHub and navigating through the relevant repositories to familiarize myself with the project structure and available resources.
    Times asked 2
  2. 2
    Following that, I downloaded the project files from the portal and set up the local environment to ensure the application could be run and tested properly.
    Times asked 2
  3. 3
    I spent time exploring the project in detail, going through different modules, components, and files to build a general understanding of how the system is structured and how different parts interact with each other.
    Times asked 2
  4. 4
    During the session, important theoretical concepts were discussed, including the distinction between authentication (verifying a user’s identity) and authorisation (determining what actions the user is permitted to perform).
    Times asked 2
  5. 5
    Additionally, frontend concepts such as props and emit were explained, focusing on how data is passed between components and how child components communicate with parent components in a structured way.
    Times asked 2
  6. 6
    After gaining this foundational understanding, I was assigned a practical task involving code modification within the existing project.
    Times asked 2
  7. 7
    The task required adding a new button to the patient dashboard interface. This button was intended to utilize the weight data already present in the edit profile functionality.
    Times asked 2
  8. 8
    The expected functionality was that, upon clicking this button, it should connect to the history model and display the patient’s historical data accordingly.
    Times asked 2
  9. 9
    I successfully implemented the UI part of the requirement by creating and placing the button within the patient dashboard.
    Times asked 2
  10. 10
    However, I faced challenges in implementing the backend linkage and data flow, specifically in connecting the button action to the history model and retrieving/displaying the relevant patient history.
    Times asked 2
Advice: Transitioning to the proctor interaction, the overall experience was very positive and encouraging. The proctor created a comfortable environment right from the beginning of the session. As soon as he joined the meeting, he greeted me warmly and asked how I was doing, which helped ease some of my initial nervousness. He was attentive enough to notice that I seemed slightly anxious and made a conscious effort to motivate and reassure me, which significantly improved my confidence during the interaction. Throughout the viva, his tone remained polite, patient, and supportive, making it easier to communicate openly without feeling intimidated. After the viva concluded, I took the opportunity to ask for feedback on my performance. He responded thoughtfully and constructively, pointing out that I should focus more on improving both my understanding of theoretical concepts and my ability to implement code changes effectively. His feedback was clear, helpful, and delivered in a kind manner, making it easier to understand where I need to improve without feeling discouraged.
  1. 1
    After I explained he asked to go back again to student_dashboard.
    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.

  2. 2
    After this in navbar the told to change button from top-left to top-right and asked to change the color of button and told to change the place of update profile to navbar
    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
    Say best of luck for viva 2
    Times asked 1
    Official solution

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

Advice: very kind and chill proctor
  1. 1
    List all the companies on the landing page.
    Times asked 2
    Official solution

    SimpleDemo script pehle se practice: 5–7 min, Admin + User roles, saare mandatory features.

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

    Viva tipBolte-bolte dikhao. Code tab kholna jab poochhein.

  2. 2
    Change the profile page so that the information entered during signup can be edited.
    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
  3. 3
    Change the form so that the information can be updated, ensuring both the frontend and backend are updated accordingly.
    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
  4. 4
    Authentication and Authorization: - Where do I have authentication and authorization in my code? - What am I using for authentication and authorization?
    Times asked 2
    Official solution

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

    Example

    # auth
    if check_password_hash(user.password, pwd):
        session['user_id'] = user.id
    
    # authz
    if user.role != 'admin':
        abort(403)
  5. 5
    const and let: - Why am I using const here? - Why am I using let here? - Explain based on the code.
    Times asked 2
    Official solution

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

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

  6. 6
    Caching: - What am I caching in the application? - Where is the caching code implemented?
    Times asked 2
    Official solution

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

    Baar-baar same expensive kaam (DB query, counting bookings) mat karo. Result Redis jaise store mein timeout ke saath rakh do.

    Cache hit: key mil gayi, DB skip. Cache miss: DB se lao, SET karo, return karo.

    Tradeoff: speed vs stale data. Admin naya venue add kare aur cache 50s ka ho to user purani list dekh sakta hai — isliye write pe invalidation zaroori hai.

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

    Example

    @cache.cached(timeout=50, query_string=True)
    @app.route('/api/shows')
    def shows():
        return jsonify([s.serialize() for s in Show.query.all()])

    Project example: Admin dashboard counts / venues list cache. Create/update/delete ke baad cache.delete('venues').

    Viva tipprint('DB queried') function ke andar laga ke miss/hit demo karo — hit pe print nahi chalega.

Advice: The proctor is polite just answer to the best of ur knowledge.
  1. 1
    Good Morning and Greetings
    Times asked 2
    Official solution

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

  2. 2
    Asked to show github, collaborator
    Times asked 2
    Official solution

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

    Example

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

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

  3. 3
    Implement demo
    Times asked 2
    Official solution

    SimpleDemo script pehle se practice: 5–7 min, Admin + User roles, saare mandatory features.

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

    Viva tipBolte-bolte dikhao. Code tab kholna jab poochhein.

  4. 4
    Don't remember a lot coz it lasted 40 minutes But majority from Database
    Times asked 2
    Official solution

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

  5. 5
    Asked me to code for a post route for creating new user and I messed up but given the answer to me as well
    Times asked 2
    Official solution

    SimpleServer-Sent Events: server → browser one-way stream (text/event-stream). WebSocket full duplex hai; SSE simpler notifications ke liye.

    Example

    # client
    const es = new EventSource('/stream');
    es.onmessage = (e) => console.log(e.data);
  6. 6
    At the end he told me thank you for your time giving in the session have a nice day ahead.
    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().

  7. 7
    The duration got increased coz he was asking particular lines as well.
    Times asked 2
    Official solution

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

Advice: He is super chill and one of the most amazing proctors. I actually messed at very end when he asked me to code I just messed up but he given me solution as well. Bhagwaan hai.
  1. 1
    Celery: What does .delay() do when calling a Celery task?
    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
    Flask Coding: Write a simple POST route that accepts JSON data (username and email), creates a new user, and commits it to the SQL database.
    Times asked 2
    Official solution

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

    Example

    @app.route('/ping')
    def ping():
        return jsonify(ok=True)
    
    @app.route('/even/<int:n>')
    def even(n):
        return 'even' if n % 2 == 0 else 'odd'
  3. 3
    Database Logic: If the database file is deleted and the backend is rerun, will the application still work? Where exactly is the database created in the code?
    Times asked 2
    Official solution

    SimpleDB file delete karke app dubara run: models se tables create (db.create_all / migrate). Data lost; schema wapas.

  4. 4
    JavaScript Variables: What is the difference between const and let? Why did you use const for the search query variable instead of let?
    Times asked 2
    Official solution

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

    Example

    q = request.args.get('q', '').strip()
    lots = Lot.query.filter(Lot.name.ilike(f'%{q}%')).all()
  5. 5
    JavaScript Operators: What is the difference between single =, double ==, and triple ===?
    Times asked 2
    Official solution

    Simple== value. is identity same object. Speed micro. None: is None.

    Difference is and ==. Performance negligible vs correctness.

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

    4-line formula: input kahan se aaya, auth/validation kaunsa, DB ya cache ya Celery, kya return.

    Related mix mat karo — cache ≠ Celery, authentication ≠ authorization, v-if ≠ v-show, Beat ≠ Worker. Follow-up ke liye ek difference ready rakho.

    Project example: if user is None. Don't is for strings.

  6. 6
    Caching: How exactly is Redis being used in your application?
    Times asked 2
    Official solution

    SimpleRedis fridge pe sticky note hai — poori kitchen (database) kholne ki zarurat nahi.

    Redis in-memory key-value store hai. Data RAM mein rehta hai, isliye disk wale SQLite/Postgres se kai guna tez.

    MAD2 mein Redis do kaam karta hai:
    1) Cache — same venue/show/dashboard JSON baar-baar DB se mat nikaalo.
    2) Celery message broker — Flask task queue mein daalta hai, worker uthata hai.

    Source of truth database hi hai. Redis band ho to cache miss ho jaata hai aur Celery queue ruk sakti hai. Crash pe cache gayab ho sakta hai — isliye important data sirf Redis mein mat rakho.

    Example

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

    Project example: GET /api/venues pehle Redis dekho. Miss pe SQLAlchemy query, phir SET with timeout. Celery worker Redis list se daily reminder uthata hai.

    Viva tipCache ke liye db=1, broker ke liye db=0 rakhna smart hai taaki keys mix na hon. Viva mein redis-cli ping → PONG dikhana strong hai.

  7. 7
    Live UI Edits: Modify the login page to put the emoji on top and change "Welcome back" to "Good morning" on the next line.
    Times asked 2
    Official solution

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

  8. 8
    App Logic Demo: What happens if all the slots are full? What will the user get to see?
    Times asked 2
    Official solution

    SimpleDemo script pehle se practice: 5–7 min, Admin + User roles, saare mandatory features.

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

    Viva tipBolte-bolte dikhao. Code tab kholna jab poochhein.

  9. 9
    Background Jobs Demo: Demonstrate the CSV export functionality and the automated email reminders.
    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: He was super chill, Be confident and if u are unsure u can say him , he will guide u on that way, be sure of what u have done in the code
  1. 1
    how and where you are implementing caching
    Times asked 2
    Official solution

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

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

  2. 2
    what is @jwt_required doing
    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
    why we are using const response, not var and let
    Times asked 2
    Official solution

    Simplevar old function-scope, let block-scope changeable, const block-scope reassign nahi.

    var x = 1; // hoisted, function scoped — avoid
    let count = 0; count = 1; // theek
    const PI = 3.14; // reassign error, object ke andar field change ho sakti hai
    Modern JS: let/const use karo, var mat karo.

  4. 4
    few other questions cant remember
    Times asked 2
    Official solution

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

  1. 1
    Based on the video of the viva, here are the technical and conceptual questions asked by the proctor to the student:
    Times asked 2
    Official solution

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

  2. 2
    * **Celery Delay Method**: What is the functionality of the `.delay()` method when using Celery for background tasks in Python?
    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.

  3. 3
    * **Redis Usage**: How are you using Redis in your application (e.g., message broker between Celery and Flask, and caching Vue front-end pages)?
    Times asked 2
    Official solution

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

    Example

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

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

  4. 4
    * **Authentication**: How are you authenticating users (e.g., using JSON Web Tokens / JWT)?
    Times asked 2
    Official solution

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

    Example

    # auth
    if check_password_hash(user.password, pwd):
        session['user_id'] = user.id
    
    # authz
    if user.role != 'admin':
        abort(403)
  5. 5
    * **Page Refresh Session Persistence**: If a user is logged in with a JWT-based authentication system and refreshes the page, will they get logged out?
    Times asked 2
    Official solution

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

    Example

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

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

  6. 6
    * **Browser Close Behavior**: What happens if you close the browser and restart the application? Will the JWT token persist in local storage?
    Times asked 2
    Official solution

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

    Example

    python -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
    flask run
  7. 7
    * **Storage Comparison**: How does local storage differ from session storage and cookies?
    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().

  8. 8
    * **Database Re-generation**: If you delete the SQLite database file (`.placement-portal.db`) and restart the Flask server, will the database file get generated again, and will all the tables get recreated?
    Times asked 2
    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'
  9. 9
    * **CORS**: Are you using cross-origin resource sharing (CORS) in your application, and how is it configured?
    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.

  10. 10
    * **JavaScript Variable Declarations**: Why did you choose `const` instead of `let` or `var` for variable declarations in JavaScript?
    Times asked 2
    Official solution

    Simplevar old function-scope, let block-scope changeable, const block-scope reassign nahi.

    var x = 1; // hoisted, function scoped — avoid
    let count = 0; count = 1; // theek
    const PI = 3.14; // reassign error, object ke andar field change ho sakti hai
    Modern JS: let/const use karo, var mat karo.

  11. 11
    * **JavaScript Typing**: Is JavaScript a statically typed language or a dynamically typed language?
    Times asked 2
    Official solution

    SimpleJavaScript browser/Node pe chalta hai — DOM, events, fetch/axios. MAD1 mein thoda JS; MAD2 mein Vue JS pe.

  1. 1
    I was asked to show the GitHub Collab first then he started the viva
    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
    1)write a celery task to add two numbers which triggers every 5 min. I clearly told him I have used ai to write the celery and redis part he asked what have you implemented on your own I said api and db part
    Times asked 2
    Official solution

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

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

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

    Example

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

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

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

  3. 3
    2)write code to make a user table with id, username and role in notepad
    Times asked 2
    Official solution

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

  4. 4
    4)which line in code makes the database
    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
    5)he asked what have I used for cache I told jwt and showed him in browser there he asked what is local storage,cookies and session storage whats the difference
    Times asked 2
    Official solution

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

    Example

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

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

  6. 6
    6)he asked me to show any view code i choose the login page over there he saw === was used he asked whats the difference between == and ===
    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.

  7. 7
    7) he asked that's the router.push used for
    Times asked 2
    Official solution

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

Advice: Just stay calm he's a chill guy he's more intrested in the database part and asks questions seeing your code mainly if you don't know anything just say him clearly he will change the question All the best :)
  1. 1
    Backend-> celery task
    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
    Overall-> Authentication v/s Authorization, jwt pipeline theory(name only), show few features if exist
    Times asked 2
    Official solution

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

    Example

    # auth
    if check_password_hash(user.password, pwd):
        session['user_id'] = user.id
    
    # authz
    if user.role != 'admin':
        abort(403)
Advice: Just know your codebase
  1. 1
    He joined a little late around 12:06 AM and asked me the following questions:
    Times asked 2
    Official solution

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

    Example

    db.session.query(Booking, User).join(User).filter(User.id == uid).all()
  2. 2
    i didn't had a js script which would be used to check on phone number length so he asked how u will code it, just tell me verbally so that i can get ur understanding.
    Times asked 2
    Official solution

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

  3. 3
    he also asked several celery and redis questions which is basically in many ppls feedback, u can go through that as well.
    Times asked 2
    Official solution

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

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

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

    Example

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

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

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

  4. 4
    then he asked what approach would be usefull Vertical scalling or horzontal scalling in order to handle millions of upcoming api calls for the booking of treks slots, then I replied that there r no perfect solutions in distributed systems its just what we want to make tradeoffs with.
    Times asked 2
    Official solution

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

    Viva tip1 minute elevator pitch ready rakho, phir demo.

  5. 5
    and then I just wasted time in demonstrating the app and giving him an idea of how i have implemented those stuffs in frontend or backend and got him impressed by me.
    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: Be calm and confident go through ur code so well that u can say about that for so looong
  1. 1
    Show git hub
    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
    Project demonstration
    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.

  3. 3
    Tell whole thing how background jobs working (like from me he asked when you press generate CSV button what whole process is going on)
    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
    Then tell to change schedule jobs to run every minute(crontab(minute="*"))
    Times asked 2
    Official solution

    SimpleCron/crontab = schedule pe job. Celery Beat app-level cron (daily email). OS crontab alag.

    Example

    crontab(hour=18, minute=0)  # har din 6pm
  5. 5
    How should you change port number (like if u using 5000 change to 8000 something like that)
    Times asked 2
    Official solution

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

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

  6. 6
    Then asked to open Vue pages and asked about different declaration (like const, var, let)
    Times asked 2
    Official solution

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

    Progressive frontend framework. Components, reactivity, directives.

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

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

    Example

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

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

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

  7. 7
    Asked about code line (if __name__ = "__main__") what is this main for what u write it
    Times asked 2
    Official solution

    Simple

    if __name__=='__main__' only when file run directly. Import pe nahi — app.run yahi. Remove import pe server start ho sakta.

    Celery/tests import app without serving. Why used.

    Flask Python micro web framework. Route decorator URL → function. MAD2 mein JSON API: request.get_json(), jsonify, JWT.

    WSGI: server (Werkzeug) app ko call. if __name__ == '__main__' sirf direct run. Factory create_app() test/celery ke liye.

    Blueprint/resources folders. @app.route vs MethodView. Debug=True viva local, prod nahi. CORS alag port Vue ke liye.

    Project example: app.py bottom.

Advice: Basically many of questions asked from sheet only(repeated), and observing code and asking why u write it.
  1. 1
    First he checks my GitHub
    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
    Then told me to open my project fully and start all the server ( it took time but he is patiently waiting, no interruptions, nothing)
    Times asked 2
    Official solution

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

    Viva tip1 minute elevator pitch ready rakho, phir demo.

  3. 3
    Then he told me to login as staff
    Times asked 2
    Official solution

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

    Suggested flow1) Concept kya hai?
    2) Mere code mein kahan?
    3) Example / demo
    4) Edge case

    Example

    # related file: models.py / routes / template
    # formula: request → check/auth → DB → render/redirect

    Viva tipExact line yaad nahi to honestly related part dikhao. Bluff mat karo.

  4. 4
    And then I started my demonstration (around 10- 12 mins )
    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.

  5. 5
    Then saw my CSV where I generate it
    Times asked 2
    Official solution

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

    Suggested flow1) Concept kya hai?
    2) Mere code mein kahan?
    3) Example / demo
    4) Edge case

    Example

    # related file: models.py / routes / template
    # formula: request → check/auth → DB → render/redirect

    Viva tipExact line yaad nahi to honestly related part dikhao. Bluff mat karo.

  6. 6
    also saw my code also
    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.

  7. 7
    Are you caching anything
    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.

  8. 8
    Saw my search functionality
    Times asked 2
    Official solution

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

    Example

    q = request.args.get('q', '').strip()
    lots = Lot.query.filter(Lot.name.ilike(f'%{q}%')).all()
  9. 9
    What kind of authentication you used in your project
    Times asked 2
    Official solution

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

    Example

    # auth
    if check_password_hash(user.password, pwd):
        session['user_id'] = user.id
    
    # authz
    if user.role != 'admin':
        abort(403)
  10. 10
    Where is token stored
    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.

  11. 11
    Sqlite and sqlalchemy
    Times asked 2
    Official solution

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

    Example

    user = User(email='a@b.com')
    db.session.add(user)
    db.session.commit()
    users = User.query.filter_by(role='admin').all()
  12. 12
    Asked about sqlite which is database and which is orm
    Times asked 2
    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'
  13. 13
    Where exactly the local storage present
    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.

  14. 14
    Have you used any orm
    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
  15. 15
    Asked about frontend
    Times asked 2
    Official solution

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

  16. 16
    Axios
    Times asked 2
    Official solution

    SimpleAxios JS HTTP client — fetch ka convenient wrapper. Promises, JSON auto, interceptors.

    Example

    axios.get('/api/lots', { headers: { Authorization: 'Bearer ' + token } })
      .then(res => console.log(res.data))
  17. 17
    Const response ( asked for other variable declarations also)
    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.

  18. 18
    Some more declarations
    Times asked 2
    Official solution

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

  19. 19
    Can we redeclare const response again
    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.

  20. 20
    Async and await
    Times asked 2
    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.

  21. 21
    Ends
    Times asked 2
    Official solution

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

  22. 22
    Then said
    Times asked 2
    Official solution

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

  23. 23
    That's all!
    Times asked 2
    Official solution

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

Advice: Proctor is so polite, patient, humble and supportive like he communicates very properly without making feel intimidated. He patiently wait while you think about your answer. He is very calm. He needs to check the knowledge so yeah prepare well. Also focus on frontend theory well. and complete the demonstration well and complete all the functionalities. Be calm. All the very best !
  1. 1
    Level 1
    Times asked 12
    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
    GitHub repo for collaborator , student ID,
    Times asked 2
    Official solution

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

    Example

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

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

  3. 3
    He asked theory stuff from my project, he'll ask you to do demo of your project, he'll guide you thru it, like register as a new company, register as a student, and see the functionalities he wants to test
    Times asked 2
    Official solution

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

  4. 4
    Then he'll ask some theory stuff , he isn't asking for any code changes
    Times asked 2
    Official solution

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

  5. 5
    I did placement portal so he asked if you blacklist a company, and if a student is shortlisted, what happens to the data then
    Times asked 2
    Official solution

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

    Viva tip1 minute elevator pitch ready rakho, phir demo.

  6. 6
    And he asked me http codes and where I implemented put and patch in my project
    Times asked 2
    Official solution

    SimplePOST naya janam (har baar naya id). PUT poori photo replace. PATCH sticker chipkao.

    POST create, not idempotent. PUT full update, idempotent. PATCH partial.

    POST ki jagah PUT se REST semantics toot. GET typically no body.

    CRUD map: POST create, GET read, PUT/PATCH update, DELETE delete.

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

    4-line formula: input kahan se aaya, auth/validation kaunsa, DB ya cache ya Celery, kya return.

    Related mix mat karo — cache ≠ Celery, authentication ≠ authorization, v-if ≠ v-show, Beat ≠ Worker. Follow-up ke liye ek difference ready rakho.

    Example

    POST /api/venues
    PUT  /api/venues/1   {all fields}
    PATCH /api/venues/1 {only name}

    Project example: POST /api/venues create. PUT /venues/1 saari fields. PATCH sirf name.

  7. 7
    Http codes, basic stuff like that
    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.

  8. 8
    Can't remember more but more or less questions were from sheet
    Times asked 2
    Official solution

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

  9. 9
    he also tested my celery and redis and asked me what cache is and about memoize
    Times asked 2
    Official solution

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

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

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

    Example

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

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

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

  10. 10
    He also asked to show code and all for this
    Times asked 2
    Official solution

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

  11. 11
    I changed crontab minute = /*1 for celery and mera gmail pe directly mail aaya he saw that and utna hi
    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.

  12. 12
    If you use mounted anywhere he will ask that as well,
    Times asked 2
    Official solution

    SimpleonMounted = Composition API ka mounted. setup() ke andar call.

    Options API: mounted() method. Mix mat. Vue 3 dono chalte.

    Lifecycle = component ki zindagi: created (instance, DOM nahi) → mounted/onMounted (DOM ready — fetch, Chart.js yahi) → updated → unmounted (clearInterval).

    Dashboard API created mein isliye nahi ki $el/canvas missing ho sakta. Composition API: onMounted(() => {}) setup ke andar. Options: mounted() method. Mix mat.

    Examiner 'konsa hook use kiya' — related .vue kholo, line padh ke bolo.

    Example

    import { onMounted, ref } from 'vue'
    const items = ref([])
    onMounted(async () => {
      items.value = await (await fetch('/api/items')).json()
    })

    Project example: script setup: onMounted(loadStats).

Advice: If it's level1 he'll most probably not ask for any code changes be confident and don't worry. All the best ! :)
  1. 1
    I was allowed to download project from portal and add environments.
    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
    I started the server and panicked as the localserver was not working (it seems I missed the / path and added to /login only) . The proctor was very kind allowed me to check and find problem.
    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
    Then I hopped onto the demo of the app.
    Times asked 2
    Official solution

    SimpleDemo script pehle se practice: 5–7 min, Admin + User roles, saare mandatory features.

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

    Viva tipBolte-bolte dikhao. Code tab kholna jab poochhein.

  4. 4
    I answered some question related to the user / admin / staff functionality that my app has (like what one can do and what one cannot do).
    Times asked 2
    Official solution

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

  5. 5
    Then I showed my cache system in the app.
    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.

  6. 6
    As the UI part was showed I was directed to open the codebase and show 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.

  7. 7
    My celery worker was not working and I panicked so I began to explain it theoretically.
    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.

  8. 8
    Then I was told to open the models file and one question from there was asked.
    Times asked 2
    Official solution

    Simplemodels.py = har table ki class: columns, PK/FK, relationships. Yeh Model layer hai.

    Suggested flow1) Classes list karo
    2) Har table ka kaam 1 line
    3) Relationships (1-M / M-M)
    4) Constraints (unique, nullable)

    Example

    class Lot(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        name = db.Column(db.String(80), nullable=False)
        spots = db.relationship('Spot', backref='lot', lazy=True)
Advice: 1. The proctor is very sweet and patient and allows you to check and rectify your mistakes. 2. At the end of viva I was advised to practice my frontend implementation, celery, and the functionality of users that I have gave to users.
  1. 1
    he asked me to do the setup 2.he asked me to show the github repo
    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
    i Gave him demonstartion of the app (demo is for 25 minutes)
    Times asked 2
    Official solution

    SimpleDemo script pehle se practice: 5–7 min, Admin + User roles, saare mandatory features.

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

    Viva tipBolte-bolte dikhao. Code tab kholna jab poochhein.

  3. 3
    he ask me difference between cdn vs cli (no coding change is asked ) At last he Said All the very best for your Viva2 i asked for feedback
    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.

Advice: Bhai matlab bhagwan hai ,,,literally he is so patient and so chill that he will greet you ,don't even intrupt means yaar just one of the best proctor till now .......
  1. 1
    I began by accessing GitHub and navigating through the relevant repositories to familiarize myself with the project structure and available resources.
    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
    Following that, I downloaded the project files from the portal and set up the local environment to ensure the application could be run and tested properly.
    Times asked 2
    Official solution

    SimpleExaminer portal wala submitted ZIP chahta hai. Local extra changes mat dikhana.

    Suggested flow1) Portal ZIP download
    2) Extract
    3) venv + pip install -r requirements.txt
    4) flask run / python app.py

  3. 3
    I spent time exploring the project in detail, going through different modules, components, and files to build a general understanding of how the system is structured and how different parts interact with each other.
    Times asked 2
    Official solution

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

    Suggested flow1) Concept kya hai?
    2) Mere code mein kahan?
    3) Example / demo
    4) Edge case

    Example

    # related file: models.py / routes / template
    # formula: request → check/auth → DB → render/redirect

    Viva tipExact line yaad nahi to honestly related part dikhao. Bluff mat karo.

  4. 4
    During the session, important theoretical concepts were discussed, including the distinction between authentication (verifying a user’s identity) and authorisation (determining what actions the user is permitted to perform).
    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().

  5. 5
    Additionally, frontend concepts such as props and emit were explained, focusing on how data is passed between components and how child components communicate with parent components in a structured way.
    Times asked 2
    Official solution

    SimpleProps parent→child values. Emit child→parent signal. Basic communication.

    Difference props and emit.

    Component = reusable UI block (Navbar, Card). Props parent→child data, emit child→parent event. Slots parent HTML inner content.

    computed cache + reactive derive (filtered list). watch side-effect (query change pe API). methods events. ref() primitive, reactive() object. Vuex/Pinia global store; localStorage persist, store nahi.

    SFC: template + script + style ek .vue file. Parent-child exam favourite: list parent, row child :item + @delete.

    Project example: Card props venue emit select.

  6. 6
    After gaining this foundational understanding, I was assigned a practical task involving code modification within the existing project.
    Times asked 2
    Official solution

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

  7. 7
    The task required adding a new button to the patient dashboard interface. This button was intended to utilize the weight data already present in the edit profile functionality.
    Times asked 2
    Official solution

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

  8. 8
    The expected functionality was that, upon clicking this button, it should connect to the history model and display the patient’s historical data accordingly.
    Times asked 2
    Official solution

    Simplemodels.py = har table ki class: columns, PK/FK, relationships. Yeh Model layer hai.

    Suggested flow1) Classes list karo
    2) Har table ka kaam 1 line
    3) Relationships (1-M / M-M)
    4) Constraints (unique, nullable)

    Example

    class Lot(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        name = db.Column(db.String(80), nullable=False)
        spots = db.relationship('Spot', backref='lot', lazy=True)
  9. 9
    I successfully implemented the UI part of the requirement by creating and placing the button within the patient dashboard.
    Times asked 2
    Official solution

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

  10. 10
    However, I faced challenges in implementing the backend linkage and data flow, specifically in connecting the button action to the history model and retrieving/displaying the relevant patient history.
    Times asked 2
    Official solution

    Simplemodels.py = har table ki class: columns, PK/FK, relationships. Yeh Model layer hai.

    Suggested flow1) Classes list karo
    2) Har table ka kaam 1 line
    3) Relationships (1-M / M-M)
    4) Constraints (unique, nullable)

    Example

    class Lot(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        name = db.Column(db.String(80), nullable=False)
        spots = db.relationship('Spot', backref='lot', lazy=True)
Advice: Transitioning to the proctor interaction, the overall experience was very positive and encouraging. The proctor created a comfortable environment right from the beginning of the session. As soon as he joined the meeting, he greeted me warmly and asked how I was doing, which helped ease some of my initial nervousness. He was attentive enough to notice that I seemed slightly anxious and made a conscious effort to motivate and reassure me, which significantly improved my confidence during the interaction. Throughout the viva, his tone remained polite, patient, and supportive, making it easier to communicate openly without feeling intimidated. After the viva concluded, I took the opportunity to ask for feedback on my performance. He responded thoughtfully and constructively, pointing out that I should focus more on improving both my understanding of theoretical concepts and my ability to implement code changes effectively. His feedback was clear, helpful, and delivered in a kind manner, making it easier to understand where I need to improve without feeling discouraged.
Created for educational purposes only. Questions are based on students' personal experiences and may not reflect actual exam content.