Viva prep · Real questions · Student experiences Enroll in Bootcamp

Search viva questions

level2_93 MAD2 Level 1 Aug 1, 2026
  1. 1
    Introduce yourself.
  2. 2
    Demonstrate your application.
  3. 3
    Explain every feature and implementation in your project thoroughly.
  4. 4
    Prevent users from booking more tickets than the available capacity.
  5. 5
    Display the total number of bookings made by a user in the Bookings page.
  6. 6
    Validate the signup username so that it only accepts an email format (e.g., abc@xyz.com).
  7. 7
    Add a Download CSV button to export all venues into a single CSV file.
  8. 8
    Display the total/current booking count.
  9. 9
    Explain the Vue directives/components (v-if, v-for) used in your code.
  10. 10
    What are Props in Vue?
  11. 11
    What is ORM?
  12. 12
    What is Redis caching?
  13. 13
    Why did you use Redis caching?
  14. 14
    Where did you implement Redis caching in your project?
Level_2_93 MAD2 Level 1 Aug 1, 2026
  1. 1
    Demonstrate your application.
  2. 2
    Implement an Export All Theatres feature (export data for all theatres at once).
  3. 3
    Display the booking count.
  4. 4
    What are the properties/options in Vue, and which ones have you used?
  5. 5
    Explain the libraries/packages you have used in your project and why you chose them.
level2_96 MAD2 Level 1 Aug 1, 2026
  1. 1
    Demonstrate your complete application.
  2. 2
    Create a new user, venue, show, and complete a booking.
  3. 3
    What should happen to bookings if a movie/venue is deleted?
  4. 4
    If the total seats for a show are reduced below the number of existing bookings, how would you handle it?
  5. 5
    Show your database models and explain your design decisions.
  6. 6
    Why did you use separate date and time columns instead of a single datetime column?
  7. 7
    Show all Vue components.
  8. 8
    Show where all frontend routes/URLs are defined.
  9. 9
    Show where you implemented caching.
  10. 10
    Demonstrate daily reminders/monthly reports.
  11. 11
    Change the reminder schedule and demonstrate it working.
  12. 12
    Show how emails are sent.
  13. 13
    Change the navbar color/background.
  14. 14
    Change simple frontend styling (e.g., background color).
  15. 15
    If cache already contains old data after inserting new records, how would you update it?
  16. 16
    Instead of calling cache.clear(), how would you clear cache for only one specific route?
  17. 17
    What is Vue.js?
  18. 18
    Why did you choose Vue instead of React?
  19. 19
    Why use Vue instead of plain HTML/CSS/JavaScript?
  20. 20
    What are the advantages of Vue.js?
  21. 21
    What is the Virtual DOM?
  22. 22
    What are the advantages and disadvantages of the Virtual DOM?
  23. 23
    What is the difference between v-if and v-show?
  24. 24
    In which scenarios would you prefer v-if over v-show (or vice versa)?
  25. 25
    Explain all Vue directives.
  26. 26
    Difference between Vue CLI and Vue CDN.
  27. 27
    How do components communicate in Vue?
  28. 28
    What is emit() / this.$emit()?
  29. 29
    How do you share data globally across all Vue components? (Vuex/Pinia)
  30. 30
    Why did you use a static admin account instead of storing roles in the database?
  31. 31
    If someone copies the /user URL into another browser, can they bypass login?
  32. 32
    If a user changes their role in Local Storage (e.g., from doctor to admin), why are they able or unable to access admin pages?
  33. 33
    Where is authentication enforced in your application?
  34. 34
    Show your SQL models.
  35. 35
    Why did you design your database this way?
  36. 36
    Difference between Primary Key and Unique Key.
  37. 37
    Can a Unique Key be used to define relationships between tables?
  38. 38
    How would you normalize your database to improve scalability?
  39. 39
    What is Redis?
  40. 40
    What is Celery?
  41. 41
    Where have you implemented caching?
  42. 42
    How do you invalidate stale cache when the database changes?
  43. 43
    What is a callback function?
  44. 44
    Explain the fetch() request in one of your Vue components.
  45. 45
    Open package.json and explain the purpose of the packages/dependencies used.
  46. 46
    What is Local Storage?
  47. 47
    What is Session Storage?
  48. 48
    What are Cookies?
  49. 49
    Difference between Local Storage, Session Storage, and Cookies.
Level2_86 MAD2 Level 1 Aug 1, 2026
  1. 1
    Demonstrate your complete application.
  2. 2
    Show and explain your models/controllers.
  3. 3
    Show the Vue components you created.
  4. 4
    Show the cached API endpoints and explain how cache invalidation works.
  5. 5
    Show your Celery implementation and scheduled jobs.
  6. 6
    Show the job scheduling reports.
  7. 7
    Show how emails are sent using SMTP.
  8. 8
    Show how CSV export is implemented.
  9. 9
    Show how JWT is stored in the browser.
  10. 10
    Explain your API authentication flow in code.
  11. 11
    How have you implemented authentication?
  12. 12
    How is route protection (login_required / JWT authentication) implemented?
  13. 13
    How have you implemented RBAC?
  14. 14
    Why is password hashing required?
  15. 15
    Have you implemented password hashing?
  16. 16
    Why are you using fs_uniquifier?
  17. 17
    What are Vue lifecycle hooks? Explain the ones you used.
  18. 18
    What are Props in Vue?
  19. 19
    Show a Vue component and explain its fetch() request and lifecycle hook.
  20. 20
    What is a Single File Component (SFC)?
  21. 21
    How do you create a new route in Vue?
  22. 22
    What are Parent Routes and Child Routes?
  23. 23
    What is Redis?
  24. 24
    Why is Redis faster than a relational database?
  25. 25
    How have you implemented Redis?
  26. 26
    What is caching?
  27. 27
    Why do we need caching?
  28. 28
    Where have you implemented caching?
  29. 29
    How do you invalidate/delete cache?
  30. 30
    Difference between Caching and Memoization.
  31. 31
    What is Memoization?
  32. 32
    Explain Celery with respect to your project.
  33. 33
    How many Celery jobs have you implemented?
  34. 34
    What did you use Celery for?
  35. 35
    Which database have you used?
  36. 36
    Is it a relational database or NoSQL database?
  37. 37
    What is a relational database?
  38. 38
    What is a NoSQL database?
  39. 39
    What is a Primary Key?
  40. 40
    Why are database integrity constraints required?
  41. 41
    What is database indexing?
  42. 42
    What is joinedload?
  43. 43
    Why did you use joinedload?
  44. 44
    Write the query without using joinedload.
  45. 45
    In what situations should joinedload be used? (N+1 Query Problem)
  46. 46
    What is a decorator?
  47. 47
    Why use a decorator instead of a normal function?
  48. 48
    Difference between jsonify and json.dumps.
  49. 49
    What are WebSockets?
  50. 50
    What are Webhooks?
  51. 51
    If your application had 1 million users and all reminder emails had to be sent within 15 minutes, how would you scale the system?
Level2_94 MAD1 Level 1 Aug 1, 2026
  1. 1
    Demonstrate your application.
  2. 2
    Change a button in the navigation bar to the right.
  3. 3
    Change a heading (e.g., "List of Songs" → "Songs").
  4. 4
    Show your database models and explain the relationships (one-to-one, one-to-many, etc.).
  5. 5
    What is Template Inheritance?
  6. 6
    What are Vue lifecycle hooks?
  7. 7
    What are Vue components?
  8. 8
    What are Vuex mutations and actions?
  9. 9
    What is CSRF?
  10. 10
    What is CORS?
  11. 11
    What is the difference between Security and Privacy?
  12. 12
    What is ON DELETE CASCADE?
  13. 13
    How do you handle data type errors in SQLAlchemy?
  14. 14
    What is Redis?
  15. 15
    What is Celery?
  16. 16
    Explain the Publish–Subscribe (Pub/Sub) pattern.
  17. 17
    What is the difference between Vertical Scaling and Horizontal Scaling?
  18. 18
    How would you scale an application?
level 3_26 MAD2 Level 1 Aug 1, 2026
  1. 1
    Demonstrate your application.
  2. 2
    If a user has booked tickets for a show and the admin deletes the venue containing that show, what should happen? Should the booking be refunded or should venue deletion be restricted?
  3. 3
    Add an amount_received column to the venue export report.
  4. 4
    Why did you use a separate RoleUsers (association) table?
  5. 5
    What is Vue?
  6. 6
    Why didn't you use Vuex?
  7. 7
    How does Vue Router work?
  8. 8
    What is the difference between Vue CLI and Vue CDN?
  9. 9
    Why did you use Vue CDN?
  10. 10
    What is the difference between v-if and v-show?
  11. 11
    What is Celery?
  12. 12
    What is Redis?
  13. 13
    Why do we use Redis instead of a normal database?
  14. 14
    What is ORM?
  15. 15
    What is SQL Injection?
  16. 16
    What is a Man-in-the-Middle (MITM) attack?
Level_3_11 MAD2 Level 1 Aug 1, 2026
  1. 1
    Demonstrate your application.
  2. 2
    Explain the Edit Show flow from frontend to backend.
  3. 3
    Explain your database models.
  4. 4
    How long did it take you to build this application?
  5. 5
    Prevent assigning more seats to a show than the venue capacity (frontend validation).
  6. 6
    Change the button color (e.g., blue to green).
  7. 7
    Implement password length validation on the frontend.
  8. 8
    Limit the product price so it cannot exceed a specified range.
  9. 9
    What is lazy loading?
  10. 10
    What is SPA (Single Page Application)?
  11. 11
    Difference between Single Page Applications (SPA) and Multi-Page Applications (MPA).
  12. 12
    What are Vue components?
  13. 13
    What are Vue directives?
  14. 14
    Difference between PUT and PATCH.
  15. 15
    Difference between POST and PUT.
  16. 16
    Can POST be used instead of PUT? Why or why not?
  17. 17
    What are Webhooks?
  18. 18
    What is the difference between a Webhook and an API?
  19. 19
    Difference between Authentication and Authorization.
  20. 20
    How have you implemented RBAC (Role-Based Access Control) for the Admin?
  21. 21
    What is ORM?
  22. 22
    What is SQLAlchemy?
  23. 23
    Can SQLAlchemy connect to Microsoft SQL Server?
Level2_87 MAD2 Level 1 Aug 1, 2026
  1. 1
    Introduce yourself and explain what you're currently doing.
  2. 2
    Which part did you enjoy or find more challenging: frontend or backend? Why?
  3. 3
    How confident are you with JavaScript and frontend technologies?
  4. 4
    Demonstrate your complete application.
  5. 5
    Explain your project, including the Celery jobs.
  6. 6
    Explain the export functionality (e.g., exporting theatres to CSV) and which library you used.
  7. 7
    Walk through your entire codebase.
  8. 8
    What additional features would you add to your application?
  9. 9
    How would you improve the security of your application?
  10. 10
    What is Vue, and why did you choose it?
  11. 11
    Why did you use Vue instead of Jinja/HTML?
  12. 12
    Why didn't you use React?
  13. 13
    What are the advantages of Vue over React?
  14. 14
    Why do you have so many Vue files?
  15. 15
    What is the difference between Vue components and pages?
  16. 16
    What are Vue lifecycle hooks?
  17. 17
    Change the styling of buttons on the frontend.
  18. 18
    Explain what these decorators do: @app.route @cache.memoize @celery.task
  19. 19
    What is Celery?
  20. 20
    How does Celery create scheduled jobs?
level3_43 MAD2 Level 1 Aug 1, 2026
  1. 1
    Demonstrate your complete project.
  2. 2
    Walk through your codebase.
  3. 3
    Explain your database schema.
  4. 4
    Explain how you implemented the search functionality.
  5. 5
    How would you implement search suggestions?
  6. 6
    How would you implement a Favorites/Likes feature (e.g., favorite theatre/show/song)?
  7. 7
    What architecture have you used in your application?
  8. 8
    Explain the MVC architecture and its flow.
  9. 9
    Which frontend framework did you use?
  10. 10
    Why did you choose Vue instead of React?
  11. 11
    What is Vue?
  12. 12
    Why did you choose Vue?
  13. 13
    Vue CLI vs Vue CDN. Which one did you use and why?
  14. 14
    How do you create a Vue component?
  15. 15
    What is a Single File Component (SFC)?
  16. 16
    What is Template Inheritance (MAD1/Jinja)?
  17. 17
    Is your application responsive?
  18. 18
    How did you make your application responsive?
  19. 19
    Can you make your application responsive without using CSS?
  20. 20
    What styling framework did you use (CSS or Bootstrap)?
  21. 21
    Difference between Flexbox and CSS Grid.
  22. 22
    What are CSS selectors? Name their types.
  23. 23
    What is DOM?
  24. 24
    What is DOM Manipulation?
  25. 25
    How is token-based authentication implemented in your application?
  26. 26
    Explain the JWT authentication flow.
  27. 27
    Which framework/library did you use for token generation?
  28. 28
    What is the algorithm used by JWT?
  29. 29
    Difference between Authentication and Authorization.
  30. 30
    Is an Admin authenticated or authorized?
  31. 31
    Why did you use token-based authentication instead of session-based authentication?
  32. 32
    Difference between Session and Token authentication.
  33. 33
    Difference between Session and Cookies.
  34. 34
    Did you use Local APIs or REST APIs?
  35. 35
    How do you create a REST API?
  36. 36
    What is AJAX?
  37. 37
    What is CORS?
  38. 38
    What is caching?
  39. 39
    What is Redis?
  40. 40
    When should cache be cleared?
  41. 41
    Center the login form/card both vertically and horizontally.
  42. 42
    Implement a shimmer loading effect.
  43. 43
    Modify the database model to support a Favorites feature.
Level2_88 MAD2 Level 1 Aug 1, 2026
  1. 1
    What technologies have you used in your application?
  2. 2
    How is authentication implemented in your application?
  3. 3
    What type of authentication (RBAC) have you implemented, and how does it work?
  4. 4
    How is the authentication token sent with API requests?
  5. 5
    How did you validate form inputs?
  6. 6
    How would you prevent users from booking more seats than are available?
  7. 7
    What is CORS?
  8. 8
    What are HTTP headers?
  9. 9
    Besides the Authorization header, what other headers have you used in fetch() requests?
  10. 10
    What is the difference between PUT and POST?
  11. 11
    What is a cron job?
  12. 12
    Explain the crontab expression used in your Celery schedule.
  13. 13
    What are Vue routes?
  14. 14
    Did you use parent-child components in your project?
  15. 15
    Did you use Slots in your application?
  16. 16
    Did you use Vuex?
  17. 17
    What are Props?
  18. 18
    Have you used this.$router? Which methods (push(), go(), etc.) have you used?
  19. 19
    What are the advantages of Vue/React over a plain JavaScript application?
  20. 20
    Show your routes.js file and explain it.
  21. 21
    What is ORM?
  22. 22
    What is the difference between relational and non-relational databases?
  23. 23
    Give examples of non-relational databases.
  24. 24
    What is Redis, and why did you use it?
  25. 25
    What is caching?
  26. 26
    What is the difference between Local Storage and Cookies?
  27. 27
    What other types of client-side storage are available?
  28. 28
    What are Webhooks?
  29. 29
    Mention file transfer protocols other than the one you used (e.g., FTP, SFTP, FTPS, SCP).
Created for educational purposes only. Questions are based on students' personal experiences and may not reflect actual exam content.