You are on page 1of 8

Project Transition and

Onboarding Guide

1. Introduction

1.1 Purpose
This document outlines the remaining tasks and requirements necessary to complete
the QuizWizz mobile application project. The main goal is to ensure that the onboarding
Flutter developer can quickly understand the scope, technical requirements, and
deliverables of the project.

1.2 Background
QuizWizz is a mobile application that enables users to test their knowledge on various
subjects by taking tests generated on-the-fly by the GPT-3 API. The frontend and user
interface, user authentication (Email sign-up and Google login), profile management,
Firebase configuration, collection design, localization, and application architecture have
been completed.

2. Technical Requirements

2.1 Skills Required


The developer should possess the following skills:

● Proficiency in Dart and Flutter.


● Familiarity with state management using Riverpod.
● Experience with Firebase, particularly Firestore and Firebase Cloud Messaging.
● Understanding of GPT-3 API for question generation.
● Experience with Firebase Authentication (Email and Google Sign-in).
● Knowledge of Google and Apple In-App Purchases for payments and
subscriptions.
● Experience in Agile software development methodologies.

2.2 Technology Stack


● Flutter
● Firebase (Firestore, Firebase Authentication, Firebase Cloud Messaging)
● GPT-3 API
● Riverpod for state management
● Google and Apple In-App Purchases
● Agile development practices

3. Remaining Tasks

3.1 Quiz Generation & Management


Develop the interaction between the application and GPT-3 API to generate and manage
quizzes in real-time. This involves creating a Gpt Service to communicate with the GPT-3
API, fetch questions, and update the application state using Riverpod.

3.2 Chat Room Implementation


Implement the chat room feature where users can interact with the AI. The chat room UI
should update in real-time reflecting the user's responses and AI feedback.

3.3 Credit Management


Develop a system for managing user credits, including providing initial free credits and
reducing credits based on usage. This will require creating a coin_management service.

3.4 Subscription Management


Implement the ability for users to subscribe for more credits. This will involve
integrating Google and Apple In-App Purchases for handling subscriptions and Firestore
for tracking user credits.

3.5 Notification System


Create a notification system using Firebase Cloud Messaging. Notifications should be
logged in Firestore for future reference.

3.6 Testing & Debugging


Ensure the entire system is thoroughly tested and debugged.

4. Agile Methodology
The project will be executed in an Agile Scrum methodology. The development process
will be broken down into a series of Sprints, each lasting particular day. At the start of
each Sprint, tasks will be prioritized and estimated.

The developer is expected to provide daily updates of their progress and any issues they
encounter. These will be quick, informal updates designed to keep the lines of
communication open.

At the end of each Sprint, there will be a review and retrospective to examine what was
done well and what could be improved. The next Sprint's tasks will be planned and
estimated based on these discussions.

4.1 Project Development Sprints Plan


Sprint 1 - Day 1: Understanding and Setup

● Understanding the current application and reviewing codebase


● Setting up the development environment
● Discussion and planning session with the team

Sprint 2 - Day 2: Courses and Chapters Implementation

● Implementing Firestore structure for courses and chapters


● Developing feature to fetch courses and chapters from Firestore
● Testing course and chapter fetching

Sprint 3 - Day 3: AI Quiz Generation

● Implementing GPT-3 API for quiz generation


● Testing GPT-3 API implementation

Sprint 4 - Day 4: Payment System

● Implementing Google and Apple In-App Purchases for subscriptions


● Testing In-App Purchases

Sprint 5 - Day 5: Notifications Setup

● Setting up Firebase Cloud Messaging for notifications


● Testing Firebase Cloud Messaging

Sprint 6 - Day 6: User Credit Management

● Developing logic and implementing user's credit management


● Testing credit management features

Sprint 7 - Day 7: Integration and Debugging

● Integration and bug fixing


● Testing whole system integration

Sprint 8 - Day 8: Finalization Preparation

● Finalizing any pending tasks


● Performing thorough app testing to ensure no bugs are left
● Final review and adjustments

5. Deliverables
● Completed and fully functional QuizWizz application with all the features
described above.
● All source code, including documentation describing the purpose and
functionality of each part of the code.
● Test reports to ensure the application is working as expected.
● A final report detailing the work done, challenges encountered and how they were
overcome, and any recommendations for future improvements.
6. Timeline
The project should be completed in 7-8 days from the start date.

7. Support
For any queries or technical difficulties, the developer can contact the previous team for
clarification or assistance.

8. Pricing
Please provide your pricing structure for the entire project, including any possible extra
charges or fees.

9. Conclusion
This document provides an overview of the remaining tasks for the QuizWizz mobile
application project. The developer should adhere to the guidelines and requirements
outlined in this document to ensure the successful completion of the project. We look
forward to the successful completion of QuizWizz and its positive impact on the
learning and education community.

10. Implementation Guidelines


This section will provide suggestions and recommendations on how to implement the
remaining features of the QuizWizz app.

● Fetching Courses and Chapters: You can use the Firestore package to
fetch courses and chapters from your Firestore database. You could create
a CourseService that provides functions like getCourses and getChapters.

● Generating Questions: Since questions are not pre-defined and are


generated on-the-fly by the GPT-3 API, you can create a Gpt4Service that
communicates with the GPT-3 API to generate and fetch questions.
● Chat Room: Use Riverpod to manage state in your chat room. You will need
to design the flow such that every question is fetched one at a time, users'
answers are captured and verified, and the UI updates to reflect whether
they were correct or not.

● Notifications: Use Firebase Cloud Messaging to send notifications. Create


a MessagingService that wraps around the Firebase Messaging package.

● Payment & Subscription: You can integrate any payment gateway like
Stripe for handling payments. Once payment is successful, update the
user's credit in the Firestore database.

11. Video Walkthrough of Current App State


To facilitate understanding of the current application state, its architecture, design, and
functionalities already implemented, we have prepared a comprehensive video
walkthrough. This video will guide you through the UI/UX of the application, illustrating
the completed features and providing an overview of the work remaining.

The video can be accessed via the following link: [Insert Video Link Here]

We highly recommend watching this walkthrough to get a concrete sense of what the
QuizWizz app is, what it currently does, and what you'll be building upon.

The video can be accessed via the following link:

https://drive.google.com/file/d/18mVSlHOTydYXSKX8xzKKtGmB2R0267Cm/view?usp=
sharing
Project Folder Structure
Our current project folder structure is already good. You can just add a few more
directories to better structure your code. Here's an example of what it could look like:

You might also like