Viva prep · Real questions · Student experiences Enroll in Bootcamp

Search viva questions

Level1_93 MAD1 Level 1 Jul 31, 2026
  1. 1
    Show your GitHub repository and collaborator.
  2. 2
    Confirm GitHub form submission.
  3. 3
    Download the project from the Viva Portal or perform checksum.
  4. 4
    Run the application.
  5. 5
    Demonstrate the complete application.
  6. 6
    Show all core functionalities.
  7. 7
    Demonstrate Admin, User/Student, Company/Staff features.
  8. 8
    Create, update, and delete records (CRUD operations).
  9. 9
    Show booking history, summary/dashboard, search, profile update, approval flow, etc.
  10. 10
    Explain any extra features.
  11. 11
    Explain booking/timestamp calculations.
  12. 12
    Explain how treatment details or other project-specific workflows are implemented.
  13. 13
    Demonstrate duplicate application prevention.
  14. 14
    Explain the project organization/architecture.
  15. 15
    Show the main Python file (app.py).
  16. 16
    Show where the database is initialized.
  17. 17
    Explain routes/controllers.
  18. 18
    Explain a specific route.
  19. 19
    Explain imported modules and why they are used (e.g., request, url_for, session, flash, redirect).
  20. 20
    Explain where SQLAlchemy is initialized.
  21. 21
    Explain where Flask is initialized.
  22. 22
    Explain code logic for a project-specific feature.
  23. 23
    What is ORM / SQLAlchemy?
  24. 24
    Explain database schema.
  25. 25
    Explain any two database tables.
  26. 26
    Explain relationships between tables.
  27. 27
    Explain Primary Key and Foreign Key.
  28. 28
    Explain backref.
  29. 29
    Explain lazy loading.
  30. 30
    What frameworks/technologies did you use?
  31. 31
    Explain any template.
  32. 32
    Where have you used Jinja?
  33. 33
    Have you used Template Inheritance? Where?
  34. 34
    Explain get_or_404().
  35. 35
    Explain redirect().
  36. 36
    Explain session.
  37. 37
    Explain flash().
  38. 38
    Explain url_for().
  39. 39
    Why do we use render_template()?
  40. 40
    How does data move from frontend to backend?
  41. 41
    How does data move from backend to frontend?
  42. 42
    Are frontend and backend validations implemented?
  43. 43
    Write HTML <form> syntax.
  44. 44
    Explain how form submission works.
  45. 45
    Types of CSS (Inline, Internal, External).
  46. 46
    CSS priority/order of execution.
  47. 47
    Write a Jinja for loop.
  48. 48
    Write a Jinja if-else statement.
  49. 49
    Explain HTTP status/error codes (e.g., 500 Internal Server Error, 301, 303 See Other).
  50. 50
    What error code is returned for a database/server issue?
  51. 51
    Write a simple Flask route.
  52. 52
    Write a route that returns Hello World.
  53. 53
    Write a route that returns the square of a number.
  54. 54
    Write a route with URL parameters (e.g., ID).
  55. 55
    Write a route that accepts input from an HTML form and displays it.
  56. 56
    Write a route that renders a list in a template using Jinja.
  57. 57
    Write a route that passes data to a template using render_template().
  58. 58
    Change the page background/UI.
  59. 59
    Write a route to retrieve a record from the database using an ID.
  60. 60
    How are User, Admin, Doctor/Staff roles separated in the application?
  61. 61
    What is datetime used for?
  62. 62
    Where is request used and why?
level 1_91 MAD1 Level 1 Jul 31, 2026
  1. 1
    Demonstrate the complete project.
  2. 2
    Explain your project configuration.
  3. 3
    What can be used instead of .env / python-dotenv for managing configuration?
  4. 4
    Explain the APIs (or routes) used in your project.
  5. 5
    Write basic Jinja code (e.g., loops, variables, or conditions).
  6. 6
    Explain how you implemented charts (e.g., Chart.js integration and data flow).
level1_viva14 MAD1 Level 1 Jul 31, 2026
  1. 1
    Show your GitHub repository.
  2. 2
    Verify GitHub collaborator access.
  3. 3
    Show the AI/LLM usage percentage.
  4. 4
    Download the project from the Viva Portal.
  5. 5
    Run the application.
  6. 6
    Demonstrate the complete application.
  7. 7
    Perform all CRUD operations.
  8. 8
    Demonstrate all Admin, User/Student, and Company functionalities.
  9. 9
    Show the search functionality.
  10. 10
    Explain the booking/appointment logic.
  11. 11
    Explain how the booking cost is calculated.
  12. 12
    Test edge cases (e.g., booking two appointments at the same time).
  13. 13
    Show database models.
  14. 14
    Explain models.py.
  15. 15
    Explain the User model.
  16. 16
    Explain backref.
  17. 17
    Is the Admin user created automatically when the database is initialized?
  18. 18
    What is Cascade in DBMS?
  19. 19
    Explain a solution if duplicate applications should later be allowed despite a unique constraint.
  20. 20
    What is ORM?
  21. 21
    Why is ORM used? What are its advantages?
  22. 22
    What is a Virtual Environment (venv)? Why do we use it?
  23. 23
    What frontend and backend frameworks have you used?
  24. 24
    Difference between frontend validation and backend validation (with examples).
  25. 25
    Explain all HTTP request methods.
  26. 26
    Difference between PUT and PATCH.
  27. 27
    How do CRUD operations map to REST APIs?
  28. 28
    What security features have you implemented?
  29. 29
    What additional security measures would you add?
  30. 30
    How would you improve SQL/database security?
  31. 31
    Add a column showing the total appointments handled by each doctor (excluding cancelled appointments).
  32. 32
    Display the total number of applications submitted by a student.
  33. 33
    Disable the Apply button after a student has already applied.
  34. 34
    Display the student's name and department on the Student Dashboard.
  35. 35
    Create a profile box on the Student Dashboard that: Redirects to the profile page. Appears at a specified location. Dynamically displays the student's name. Uses a specific color.
  36. 36
    Suggest an additional template/page showing details of the user booking a parking slot.
  37. 37
    Answer hypothetical scenarios based on your application design and implementation.
level2_139 MAD1 Level 1 Jul 31, 2026
  1. 1
    Show your College ID.
  2. 2
    Download the submitted project from the Viva Portal.
  3. 3
    Run the application.
  4. 4
    Show models.py.
  5. 5
    Show the percentage of AI/LLM used in the project.
  6. 6
    Demonstrate the complete application.
  7. 7
    Show all core functionalities.
  8. 8
    Log in as Admin and: Create a new parking lot. Edit a parking lot. Reduce available spots to 0 and 1. View users. View summary charts. Logout.
  9. 9
    Log in as User and: Book a parking spot. Vacate a parking spot. View summary charts. Logout.
  10. 10
    Explain how the parking cost is calculated.
  11. 11
    Difference between PUT and POST.
  12. 12
    What is a Primary Key?
  13. 13
    Write a Jinja for loop.
  14. 14
    Write a query to fetch a specific user by User ID.
  15. 15
    Write a query to fetch all users.
  16. 16
    Write a query to fetch parking spots belonging to a specific Lot ID.
  17. 17
    Modify the application so the Admin dashboard displays the total number of users.
level1_131 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
    Explain the complete project/folder structure.
  4. 4
    Explain the purpose of every file and how they are connected.
  5. 5
    Explain current_app.
  6. 6
    What is ORM?
  7. 7
    Have you used ORM? Why?
  8. 8
    Explain the frontend, backend, and database architecture.
  9. 9
    Explain the complete workflow when a user registers.
  10. 10
    Explain the complete data flow for a feature (e.g., Add Doctor, Apply for Drive, Profile Update).
  11. 11
    Explain app.py.
  12. 12
    Explain models.py.
  13. 13
    Explain a specific route chosen by the proctor.
  14. 14
    Explain how a route with both GET and POST methods works.
  15. 15
    Explain endpoint routes such as '/delete/<int:id>'.
  16. 16
    Explain @app.template_filter.
  17. 17
    Explain context_processor.
  18. 18
    Explain app_context.
  19. 19
    Explain all model relationships.
  20. 20
    Explain One-to-One, One-to-Many, and Many-to-Many relationships.
  21. 21
    Explain backref.
  22. 22
    Explain nullable.
  23. 23
    Explain Foreign Key.
  24. 24
    Explain Secondary (Junction) Tables.
  25. 25
    How do you add a new record using SQLAlchemy ORM?
  26. 26
    Write an ORM query to insert a new record.
  27. 27
    Update a record using a field other than the primary key.
  28. 28
    Fetch a record using its Primary Key.
  29. 29
    Fetch related data using relationships (without writing an explicit SQL query).
  30. 30
    Write a SQL query to insert data.
  31. 31
    What is RegisterForm? Where is it defined?
  32. 32
    What is Flask-Migrate? Why did you use it?
  33. 33
    Why is SQLALCHEMY_TRACK_MODIFICATIONS=False used?
  34. 34
    Explain debug=True.
  35. 35
    Explain if __name__ == "__main__".
  36. 36
    Explain url_for().
  37. 37
    Explain redirect().
  38. 38
    Explain render_template().
  39. 39
    Match: redirect() → route render_template() → HTML template url_for() → endpoint/function name
  40. 40
    What parameter should be passed to url_for()?
  41. 41
    Why do some routes use <int:id> while others don't?
  42. 42
    Alternative ways to pass data besides <int:id>.
  43. 43
    Explain all HTTP methods.
  44. 44
    Difference between GET and POST.
  45. 45
    Can a form be submitted using PUT or DELETE?
  46. 46
    What happens if a form uses the GET method?
  47. 47
    How is the POST method triggered?
  48. 48
    Can GET be used to create data?
  49. 49
    How do you retrieve query parameters?
  50. 50
    Explain request.args.get().
  51. 51
    Explain form action.
  52. 52
    Explain enctype.
  53. 53
    Difference between Authentication, Authorization, and Validation.
  54. 54
    How do you protect routes so only logged-in users can access them?
  55. 55
    What type of validation is pattern?
  56. 56
    Explain minlength validation.
  57. 57
    What is Template Inheritance?
  58. 58
    Explain Jinja object access (e.g., reservation.spot.lot.name).
  59. 59
    Write a Jinja for loop.
  60. 60
    Explain the name attribute in HTML forms.
  61. 61
    Difference between block and inline elements.
  62. 62
    Difference between <tr>, <td>, and <th>.
  63. 63
    What is .parking-summary-card? What does the . selector represent?
  64. 64
    What is display: flex?
  65. 65
    How do you make a section occupy half the page width?
  66. 66
    How do you add a hover effect to a button?
  67. 67
    Align two different text elements using HTML/CSS.
  68. 68
    What JavaScript did you use?
  69. 69
    Explain your Chart.js implementation.
  70. 70
    What is the DOM?
  71. 71
    What is Version Control?
  72. 72
    Which Version Control tool did you use?
  73. 73
    What does git status do?
  74. 74
    Git command to create a new branch.
  75. 75
    Explain basic Git commands.
  76. 76
    Explain how resume/file upload is handled.
  77. 77
    Why did you use request.files.get()?
  78. 78
    Create a route and HTML form that accepts user input and displays it on the browser.
  79. 79
    Create a route that stores form input in the database.
  80. 80
    Create a route with URL parameters (e.g., /sum/<a>/<b> or /course/<course_name>).
  81. 81
    Retrieve a student's applications using ORM relationships.
  82. 82
    Retrieve a company by its ID.
  83. 83
    Retrieve a student by ID.
  84. 84
    Display student details and applications in a table.
  85. 85
    Create a One-to-One relationship in code.
  86. 86
    Insert a new Admin/User using ORM.
  87. 87
    Add a parking spot using ORM.
  88. 88
    Change the Admin Dashboard cards from row layout to column layout.
  89. 89
    Print list elements greater than a given value using a Jinja loop.
  90. 90
    Explain the complete flow of the code you wrote during the coding task.
  91. 91
    Did you implement a search feature? Explain its frontend and backend.
  92. 92
    What resources or documentation did you use while building the project?
  93. 93
    What is your area of interest outside this degree?
Level1_133 MAD1 Level 1 Jul 30, 2026
  1. 1
    Show your College ID.
  2. 2
    Show your GitHub repository.
  3. 3
    Download the project from the Viva Portal.
  4. 4
    Run checksum.
  5. 5
    Demonstrate the application (the proctor may stop you midway and ask specific scenarios).
  6. 6
    Create sample entities (e.g., student, company, drive, upload CV).
  7. 7
    Explain the Student Dashboard workflow.
  8. 8
    Explain the Company CRUD workflow.
  9. 9
    Explain additional features beyond the basic requirements.
  10. 10
    Identify and explain any flaw noticed by the proctor (e.g., logout functionality).
  11. 11
    Explain MVC and show where it is implemented in your code.
  12. 12
    Explain the complete request flow after login (Browser → Controller/Route → Database → Response → View).
  13. 13
    Explain how Controller and View interact during operations such as registration.
  14. 14
    Explain one complete route from your project (e.g., student applying for a drive).
  15. 15
    Explain routing and the purpose of different route handlers.
  16. 16
    Explain different parts of your code when the proctor points to them.
  17. 17
    Explain models.py.
  18. 18
    Explain the database schema.
  19. 19
    Explain relationships between tables.
  20. 20
    Explain Primary/Foreign Keys.
  21. 21
    Explain One-to-One and One-to-Many relationships and how they are identified.
  22. 22
    What is ORM? Why is it used?
  23. 23
    Have you heard of MySQLAlchemy?
  24. 24
    What is Lazy Loading?
  25. 25
    What is backref?
  26. 26
    What is Cascade Delete?
  27. 27
    What is Cascade Update?
  28. 28
    What are other Cascade operations/rules?
  29. 29
    How would you delete one application without affecting other related records?
  30. 30
    Difference between Authentication and Authorization.
  31. 31
    What is Password Hashing?
  32. 32
    How did you implement Password Hashing?
  33. 33
    Explain all HTTP request methods.
  34. 34
    Difference between GET, POST, and PUT.
  35. 35
    What is Jinja?
  36. 36
    What is Template Inheritance?
  37. 37
    Have you used a REST API?
  38. 38
    If a database error occurs, how would you handle it? (Exception Handling)
  39. 39
    Display the student's name on the Student Dashboard.
  40. 40
    Display the student's roll number on the Student Dashboard.
  41. 41
    Display the current date.
  42. 42
    Display the current date and time.
  43. 43
    Change the dashboard heading to "{{ Name }}'s Dashboard".
  44. 44
    Fetch and display all student names on the Company Dashboard using a Jinja for loop (including both applied and non-applied students).
  45. 45
    Answer UI-related questions or explain your frontend implementation.
Level1_95 MAD1 Level 1 Jul 30, 2026
  1. 1
    Show your College ID.
  2. 2
    Verify GitHub collaborator access.
  3. 3
    Download the project from the Viva Portal.
  4. 4
    Show your project report (to verify LLM/AI usage declaration).
  5. 5
    Demonstrate the complete application.
  6. 6
    Demonstrate CRUD operations.
  7. 7
    Show any additional features you implemented beyond the project requirements.
  8. 8
    Explain how you prevent duplicate submissions (e.g., student applying multiple times).
  9. 9
    Explain the backend logic for a booking/application workflow.
  10. 10
    Explain how you would implement duplicate prevention if it is not already implemented.
  11. 11
    Explain models.py.
  12. 12
    Explain one complete route from your project.
  13. 13
    Explain the login logic.
  14. 14
    Explain the logic for blocking specific users/routes.
  15. 15
    Show and explain all project files.
  16. 16
    Show all HTML files.
  17. 17
    Explain a Jinja for loop from your HTML template.
  18. 18
    Explain where you handled a specific error in your project.
  19. 19
    What is MVC?
  20. 20
    Difference between Authentication and Authorization (with examples from your project).
  21. 21
    Explain all HTTP request methods.
  22. 22
    Difference between POST and PUT.
  23. 23
    Difference between PUT and FETCH.
  24. 24
    What is Template Inheritance?
  25. 25
    What is Cascade (Cascading) in databases?
  26. 26
    What does lazy=True mean in SQLAlchemy?
  27. 27
    What are Flash Messages?
  28. 28
    If an admin deletes a parking lot (or similar parent record) that has active bookings, what will happen?
  29. 29
    How would you change the appearance/layout of the Admin Dashboard?
  30. 30
    Write a simple Hello World route in Notepad.
  31. 31
    Write a route that accepts two numbers as input and returns their sum along with the string "Hello".
Level1_94 MAD1 Level 1 Jul 30, 2026
  1. 1
    Show your College ID.
  2. 2
    Show your GitHub repository.
  3. 3
    Download the project from the Viva Portal.
  4. 4
    Demonstrate the application.
  5. 5
    Perform all CRUD operations.
  6. 6
    Open the application in Incognito mode and explain why the user is not logged in.
  7. 7
    Explain app.py.
  8. 8
    Explain os.getenv().
  9. 9
    Explain the configuration variables (e.g., SECRET_KEY and other app configuration parameters).
  10. 10
    Explain @login_required.
  11. 11
    Explain before_request and how you used it.
  12. 12
    Create a new route and a corresponding template.
  13. 13
    Display all users in the new route.
  14. 14
    Modify the template to display only usernames instead of object representations.
  15. 15
    What is ORM?
  16. 16
    Why is ORM used?
  17. 17
    Full form of CRUD.
  18. 18
    What is Cascade?
  19. 19
    Difference between {% %} and {{ }} in Jinja.
  20. 20
    Why is Jinja used?
  21. 21
    What frontend and backend frameworks have you used?
  22. 22
    What is the PUT method?
  23. 23
    Explain RESTful API and HTTP methods.
  24. 24
    Why didn't you use the PUT method?
  25. 25
    What is the purpose of the default parameter in SQLAlchemy columns (e.g., default=1)?
  26. 26
    Difference between frontend validation and backend validation.
level2_132 MAD1 Level 1 Jul 30, 2026
  1. 1
    Show your student ID.
  2. 2
    Download the project ZIP from the viva portal.
  3. 3
    Rename the ZIP/folder as instructed (e.g., viva_1 or level1viva1) and extract it.
  4. 4
    Demonstrate the complete application.
  5. 5
    Show the functionalities of each user role.
  6. 6
    Explain the routes.
  7. 7
    Explain the models.
  8. 8
    Explain the login flow and security checks.
  9. 9
    Explain the CRUD operations from the admin side.
  10. 10
    Explain the summary/dashboard page, especially the charts.
  11. 11
    Explain MVC architecture and show its implementation in your project.
  12. 12
    What are Blueprints in Flask?
  13. 13
    Explain the routes in your project.
  14. 14
    Write a Flask function to display all unapproved drives.
  15. 15
    Difference between Authentication and Authorization.
  16. 16
    Show where Authentication and Authorization are implemented in your code.
  17. 17
    What is ORM?
  18. 18
    What is Data Normalization?
  19. 19
    What is a RESTful API?
  20. 20
    Difference between RESTful and RESTless APIs.
  21. 21
    Difference between HTTP and HTTPS.
  22. 22
    Difference between Inline, Internal, and External CSS.
  23. 23
    Add a new Age field to the registration form and print its value in the terminal.
  24. 24
    Modify the application so a company cannot create another drive if it already has one active drive.
level2_79 MAD1 Level 1 Jul 30, 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 run it.
  4. 4
    Demonstrate the complete application.
  5. 5
    Show the blacklist functionality (blocked user/staff cannot log in).
  6. 6
    Show staff approval before login.
  7. 7
    Show profile update functionality.
  8. 8
    Show search functionality.
  9. 9
    Show that booking fails when available slots are 0 (prevent overbooking).
  10. 10
    Add a new column to the admin search results.
  11. 11
    Change a dashboard field (e.g., drive name) after posting.
  12. 12
    Can a student edit their submitted resume after applying? Explain/show.
  13. 13
    Did you skip any required features from the problem statement?
  14. 14
    Write a Flask route that displays "Hello/Your Name" using Jinja.
  15. 15
    Write a Flask route that takes input from one HTML page and displays it on another page.
  16. 16
    Write a Flask route that takes a number and changes the next page's background color based on whether it is even or odd.
  17. 17
    Write a Flask route that returns the total number of bookings for a given user ID.
  18. 18
    Explain MVC architecture using your project.
  19. 19
    Show where Jinja is used in your project.
  20. 20
    What are the different types/features of Flask templating?
  21. 21
    What is ORM?
  22. 22
    Which ORM did you use?
  23. 23
    How does ORM work?
  24. 24
    What is Cascade in SQLAlchemy?
  25. 25
    Can Cascade be used for operations other than delete?
  26. 26
    Is your database normalized?
  27. 27
    Which normal form have you implemented?
  28. 28
    Why didn't you use higher normal forms?
  29. 29
    What are RESTful principles?
  30. 30
    What are HTTP methods?
  31. 31
    Can the roles of GET and POST be interchanged? Explain your opinion.
  32. 32
    What is Cross-Site Scripting (XSS)?
  33. 33
    What is CORS?
  34. 34
    Difference between CORS and Cross-Site Scripting (XSS).
  35. 35
    Explain Vertical Scaling vs Horizontal Scaling.
  36. 36
    Explain Tier-2 vs Tier-3 architecture.
  37. 37
    How does the blacklist mechanism work?
  38. 38
    How does search work in your application?
  39. 39
    How do you prevent overbooking?
  40. 40
    Why shouldn't trek slots become negative? How would you validate this?
  41. 41
    How would you implement a feature to prevent invalid slot values?
Created for educational purposes only. Questions are based on students' personal experiences and may not reflect actual exam content.