Viva prep · Real questions · Student experiences Enroll in Bootcamp

Search viva questions

level1_viva30 MAD1 Level 1 Jul 31, 2026
  1. 1
    Show your student ID.
  2. 2
    Download the project from the portal (or verify checksum if requested).
  3. 3
    Show your GitHub repository, collaborators, and commit history.
  4. 4
    Demonstrate the complete application.
  5. 5
    Explain your database.Explain your models.Explain your routes.
  6. 6
    Explain the login route.
  7. 7
    Explain specific routes/features (e.g., create drive, dashboard).
  8. 8
    Show and explain template files (especially dashboard templates).
  9. 9
    Write the User model in Flask/SQLAlchemy.
  10. 10
    Write a Flask route to return all users.
  11. 11
    Write a Flask route to return all applications.
  12. 12
    Write a Flask route to update a student profile.
  13. 13
    Write a Flask API route to search a student by student_id.
  14. 14
    Write a Jinja for loop.
  15. 15
    What are Blueprints in Flask?
  16. 16
    What is an alternative to Blueprints?
  17. 17
    Explain MVC architecture.
  18. 18
    What is Template Inheritance?
  19. 19
    What is ORM?
  20. 20
    Explain Primary Key.Explain Foreign Key.
  21. 21
    What is Cascading?
  22. 22
    Why did you use back_populates?
  23. 23
    Why did you use lazy=True?
  24. 24
    What is JWT?
  25. 25
    What is a JWT Payload?
  26. 26
    What is a Request Payload?
  27. 27
    What are Sessions?Where are Sessions stored?
  28. 28
    What is SECRET_KEY?
  29. 29
    Difference between PUT and POST.
  30. 30
    Difference between PUT and PATCH.
  31. 31
    What is an Asynchronous Request?
  32. 32
    What are Lifecycle Hooks?
proctor 801 MAD1 Level 1 Jul 31, 2026
  1. 1
    Show your student ID card.
  2. 2
    Show your GitHub repository and collaborator.
  3. 3
    Download the project from the portal and perform checksum verification.
  4. 4
    Demonstrate all core functionalities of the application.
  5. 5
    Login as Admin and create a trek.
  6. 6
    Register a staff member, approve the staff, assign a trek, then login as staff.
  7. 7
    Login as a user, update the profile, and book a trek.
  8. 8
    Show that overbooking is prevented when available slots are 0.
  9. 9
    Show that staff can update/control trek slots.
  10. 10
    Show where the Models, Views, and Controllers are in your project.
  11. 11
    Write a Flask route that takes two integers from the URL and returns their sum.
  12. 12
    Write a Flask route that takes two integers from the URL and returns their product.
  13. 13
    Write a Flask route that returns the total number of blacklisted users.
  14. 14
    Explain MVC architecture using your project.
  15. 15
    What is ORM?
  16. 16
    How have you used ORM in your project?
  17. 17
    Difference between backref and back_populates.
  18. 18
    What is cascade="all, delete" (Cascade Delete)?
  19. 19
    Difference between Authentication and Authorization.
  20. 20
    What is CORS?
  21. 21
    Why is HTTP stateless?
  22. 22
    Difference between PUT and PATCH.
  23. 23
    Change the color of a button.
  24. 24
    Change the background color of table headers to green.
level1 128 MAD1 Level 1 Jul 31, 2026
  1. 1
    Show your College ID.
  2. 2
    Show your GitHub repository and collaborator.
  3. 3
    Download the project from the Viva Portal.
  4. 4
    Set up the project using a virtual environment (venv).
  5. 5
    What is venv?
  6. 6
    Demonstrate the core functionalities of the application.
  7. 7
    Create sample records (e.g., staff, users, treks).
  8. 8
    Show the approval workflow.
  9. 9
    Demonstrate slot/availability validation (e.g., second user cannot book when slots are full).
  10. 10
    Demonstrate profile editing.
  11. 11
    Demonstrate search functionality.
  12. 12
    Explain how each demonstrated feature works in the code.
  13. 13
    Explain models.py.
  14. 14
    Show the code responsible for displaying data on the dashboard.
  15. 15
    Explain the implementation of a specific functionality in the code.
  16. 16
    Modify both frontend and backend code for a feature.
  17. 17
    What is ORM?
  18. 18
    Difference between filter() and filter_by().
  19. 19
    Write the Flask code for a login route.
  20. 20
    Write a Flask route to check whether a number is even or odd.
  21. 21
    Write basic Flask code.
  22. 22
    Write HTML code for a table.
  23. 23
    Write a Jinja for loop.
  24. 24
    Modify the search functionality so searching by department displays doctors from that department.
  25. 25
    Difference between PUT and POST.
  26. 26
    What is an API?
  27. 27
    Difference between Authentication and Authorization.
  28. 28
    Explain MVC/MVP architecture.
  29. 29
    What is Git?
  30. 30
    Why do we use Git?
proctor_784 MAD1 Level 1 Jul 31, 2026
  1. 1
    Download the submission from the portal and perform checksum verification.
  2. 2
    Demonstrate the complete application.
  3. 3
    Explain every major functionality of the website.
  4. 4
    Demonstrate the complete workflow (e.g., register staff → admin approval → create trek → assign staff → user books trek).
  5. 5
    Explain the models.py file.
  6. 6
    Explain MVC architecture using your project.
  7. 7
    What is @app.route() and why is it used?
  8. 8
    If you didn't use an ORM, how does your project still follow MVC?
  9. 9
    Did you use an ORM? Explain.
  10. 10
    How did you protect your application from SQL Injection attacks?
  11. 11
    Explain parameterized SQL queries.
  12. 12
    Difference between Authentication and Authorization.
  13. 13
    Which HTTP methods have you used in your project?
  14. 14
    Explain those HTTP methods.
  15. 15
    What other HTTP methods do you know?
  16. 16
    What is a client? What is a server?
  17. 17
    What network protocols do you know?
  18. 18
    What is the purpose of {{ }}?
  19. 19
    What is the purpose of {% %}?
  20. 20
    What is the purpose of {# #}?
  21. 21
    Display the logged-in staff member's name on the staff dashboard.
  22. 22
    Display the trek start date and end date on trek cards.
  23. 23
    Add an Age column to the database.
  24. 24
    Add the Age field to the registration form.
  25. 25
    Update the registration route to save the age in the database.
  26. 26
    Add business logic so that only users younger than 50 years can register.
level1_130 MAD1 Level 1 Jul 31, 2026
  1. 1
    Show your College ID.
  2. 2
    Download the project from the Viva Portal or perform checksum.
  3. 3
    Give a project demo (if asked).
  4. 4
    Explain the project architecture/structure.
  5. 5
    Explain all project files (app.py, .env, routes, models, etc.).
  6. 6
    Explain the complete project workflow.
  7. 7
    Explain the models and their relationships.
  8. 8
    Explain a specific section/line of code selected by the proctor.
  9. 9
    Explain the login route and its workflow.
  10. 10
    Explain a feature route (e.g., Add Lot/Create Drive) from frontend to backend.
  11. 11
    Explain how the frontend template connects to the backend.
  12. 12
    Explain the complete workflow of a user action (e.g., booking an appointment).
  13. 13
    What is SECRET_KEY?
  14. 14
    Why is SECRET_KEY used and how does it work?
  15. 15
    What is backref?
  16. 16
    Difference between GET and POST.
  17. 17
    Difference between PUT and POST.
  18. 18
    Can PUT and POST be used interchangeably?
  19. 19
    What is an idempotent HTTP method?
  20. 20
    What happens if method="POST" is removed from an HTML form?
  21. 21
    If url_for() is removed from redirect(), how would you achieve the same result?
  22. 22
    Difference between id and name attributes.
  23. 23
    Difference between Block and Inline elements.
  24. 24
    Difference between Inline CSS and Internal CSS.
  25. 25
    Difference between Authentication and Authorization.
  26. 26
    Write a Jinja for loop to display a list.
  27. 27
    Write a Flask endpoint that accepts query parameters and returns JSON data.
  28. 28
    What is API parsing/argument parsing?
  29. 29
    Write the Git command to create/switch branches.
  30. 30
    Write the Git command to stop tracking a file.
  31. 31
    What are Pytest markers?
  32. 32
    Difference between Pytest markers and keywords.
Level1_viva34 MAD1 Level 1 Jul 31, 2026
  1. 1
    Show your GitHub repository.
  2. 2
    Download the project from the Viva Portal (no checksum required).
  3. 3
    Demonstrate the complete application.
  4. 4
    Explain CRUD operations.
  5. 5
    Show and explain the cost calculation logic.
  6. 6
    Explain the routes.
  7. 7
    Answer database-related questions.
  8. 8
    What is SECRET_KEY in app.py?
  9. 9
    Why is SECRET_KEY used?
  10. 10
    Explain MVC architecture.
  11. 11
    Explain GET and POST methods.
  12. 12
    Explain common HTTP status codes such as 200, 302, 304, and 404.
L1_129 MAD1 Level 1 Jul 31, 2026
  1. 1
    Show your College ID.
  2. 2
    Show your GitHub repository and collaborator.
  3. 3
    Verify GitHub form submission.
  4. 4
    Verify GitHub form submission.
  5. 5
    Show AI/LLM usage.
  6. 6
    Demonstrate the complete application.
  7. 7
    Perform CRUD operations.
  8. 8
    Create sample data (e.g., companies, students, drives, doctors).
  9. 9
    Approve/Reject records.
  10. 10
    Explain project-specific functionalities and design decisions.
  11. 11
    Show additional features beyond the project requirements.
  12. 12
    Explain why certain features were or were not implemented.
  13. 13
    Explain the project folder/file structure.
  14. 14
    Explain models.py.
  15. 15
    Explain a specific section of models.py (random lines).
  16. 16
    Explain routes.py.
  17. 17
    Explain a specific route (e.g., edit slots).
  18. 18
    Explain create_app().
  19. 19
    Explain Controllers in your MVC implementation.
  20. 20
    Explain relationships between models.
  21. 21
    Explain One-to-Many relationships.
  22. 22
    How would you convert a One-to-Many relationship into One-to-One?
  23. 23
    Explain backref.
  24. 24
    What can be used instead of backref? (e.g., back_populates)
  25. 25
    Explain lazy=True.
  26. 26
    Explain __tablename__.
  27. 27
    Explain ON DELETE CASCADE.
  28. 28
    What does cascade="all, delete" mean?
  29. 29
    Difference between filter() and filter_by().
  30. 30
    Explain MVC architecture with respect to your project.
  31. 31
    Explain Flash messages.
  32. 32
    Explain create_app() in Flask.
  33. 33
    Explain HTTP request methods.
  34. 34
    Difference between GET and PUT.
  35. 35
    Difference between PUT and PATCH.
  36. 36
    What are RESTful APIs?
  37. 37
    Explain Jinja Template Inheritance.
  38. 38
    Write a Jinja for loop.
  39. 39
    Explain the HTML <input> tag.
  40. 40
    Explain Bootstrap button styling.
  41. 41
    Prevent duplicate appointments for the same patient, doctor, and time slot.
  42. 42
    Add a new field (e.g., Age, Experience, Salary) and update: Database model Backend routes Frontend form Database storage
  43. 43
    Add validation to prevent selecting a past date.
  44. 44
    Display additional statistics on the dashboard (e.g., Total Applied, Selected, Rejected, Shortlisted).
  45. 45
    Write a Flask route to display filtered records (e.g., approved students/applications).
Level1_107 MAD1 Level 1 Jul 31, 2026
  1. 1
    Show your College ID.
  2. 2
    Show your GitHub repository and collaborator.
  3. 3
    Perform checksum or download the project from the Viva Portal.
  4. 4
    Demonstrate the complete application.
  5. 5
    Focus on CRUD operations (especially Create, Read, Update, Delete).
  6. 6
    Show Admin/User summaries.
  7. 7
    Explain the price/cost calculation logic.
  8. 8
    Explain the CRUD operations in your code.
  9. 9
    Explain a specific route selected by the proctor.
  10. 10
    Explain a specific section of your code.
  11. 11
    If you create a new Python file with a function, will it work without modifying the existing project? Explain why.
  12. 12
    Have you used SQLAlchemy?
  13. 13
    Why did you use SQLAlchemy? What are its advantages?
  14. 14
    Explain the Primary Key.
  15. 15
    Explain the Foreign Key.
  16. 16
    What is MVC? Explain its architecture.
  17. 17
    Why did you use Blueprints?
  18. 18
    What is @login_required? Why is it used?
  19. 19
    Have you used Flask? Where?
  20. 20
    What is Jinja2?
  21. 21
    Why did you use Jinja2?
  22. 22
    How did you build the frontend?
  23. 23
    What are the advantages of HTML and CSS?
  24. 24
    Write a simple Flask route.
  25. 25
    How much AI/LLM did you use in the project?
  26. 26
    Where did you use AI?
  27. 27
    Which part of the project was the most difficult to implement?
Level1_135 MAD1 Level 1 Jul 31, 2026
  1. 1
    Demonstrate the complete application.
  2. 2
    Explain models.py.
  3. 3
    Explain relationships between models.
  4. 4
    Explain cascade.
  5. 5
    Explain lazy loading.
  6. 6
    Add a new column to a model and update the frontend and database to store the new field.
  7. 7
    Explain your routes.
  8. 8
    Modify an existing route.
  9. 9
    What is Flask?
  10. 10
    Explain the tech stack/frameworks used.
  11. 11
    What is Bootstrap?
  12. 12
    Where and how have you used Bootstrap?
  13. 13
    Change the color of a button.
Level2_142 MAD1 Level 1 Jul 31, 2026
  1. 1
    Show your College ID.
  2. 2
    Show your GitHub repository and collaborator.
  3. 3
    Show AI/LLM usage percentage and whether it is mentioned in the report.
  4. 4
    Download the project from the Viva Portal or perform checksum.
  5. 5
    Run the application.
  6. 6
    Demonstrate the complete application.
  7. 7
    Perform all CRUD operations as Admin.
  8. 8
    Show all user roles and their functionalities.
  9. 9
    Show the Summary/Dashboard.
  10. 10
    Show registered users.
  11. 11
    Show booking flow and booked records.
  12. 12
    Explain how the estimated cost/price is calculated.
  13. 13
    Test project-specific scenarios (e.g., duplicate booking prevention, blacklist login, remember-me feature).
  14. 14
    Explain the project directory/folder structure.
  15. 15
    Explain models.py.
  16. 16
    Show where Admin is created in the code.
  17. 17
    Explain a specific route.
  18. 18
    Show where Jinja2 is used in the project.
  19. 19
    Show where MVC is implemented.
  20. 20
    Which database have you used?
  21. 21
    How many database tables are used?
  22. 22
    Explain the database models.
  23. 23
    How are User and Admin differentiated?
  24. 24
    What is ORM?
  25. 25
    Which ORM have you used?
  26. 26
    Why is ORM used?
  27. 27
    What is Cascade?
  28. 28
    Can Cascade be used for operations other than Delete?
  29. 29
    Is your database normalized?
  30. 30
    Explain the Normal Forms (1NF, 2NF, 3NF, etc.).
  31. 31
    What is app.config["SECRET_KEY"]? Why is it required?
  32. 32
    What happens if SECRET_KEY is not defined?
  33. 33
    What is app.app_context().push()? Why is it used?
  34. 34
    What is app = Flask(__name__)?
  35. 35
    What is MVC?
  36. 36
    Why do we use __name__?
  37. 37
    What is REST?
  38. 38
    What are REST principles?
  39. 39
    What is an API?
  40. 40
    Have you implemented REST APIs?
  41. 41
    Explain HTTP methods.
  42. 42
    Can GET be used to send/fetch data?
  43. 43
    Can POST be used to fetch data?
  44. 44
    Can DELETE be used to fetch data?
  45. 45
    Is HTTP stateless or stateful? What is state?
  46. 46
    What frameworks/technologies have you used?
  47. 47
    Why did you choose Flask instead of Django?
  48. 48
    Difference between 2-Tier and 3-Tier Architecture.
  49. 49
    What is Jinja2?
  50. 50
    Why did you use Jinja2?
  51. 51
    Explain an Anchor (<a>) tag with GET/POST behavior.
  52. 52
    Difference between # and . selectors in CSS.
  53. 53
    What is the datatype of an SQLAlchemy query result? (e.g., x = Model.query.filter_by(...))
  54. 54
    Sort table data alphabetically.
  55. 55
    Sort table data alphabetically.
  56. 56
    Display table data in uppercase.
  57. 57
    Change a row layout into a column layout.
  58. 58
    Create a page with input field(s) and a Submit button that displays the entered data on another page.
  59. 59
    Create a route that accepts URL/form parameters and renders another page.
  60. 60
    Create a page to add two numbers and display their sum.
  61. 61
    Validate password length on the frontend.
  62. 62
    Add backend validation requiring a special character in the password.
  63. 63
    Check whether an email exists in the database and display the result.
  64. 64
    Difference between DELETE and TRUNCATE.
  65. 65
    Rate your own project on a scale of 1–10.
Created for educational purposes only. Questions are based on students' personal experiences and may not reflect actual exam content.