#import "../Templates/template.typ": *

#show: group_work.with("Proposal")

// Group Members
#let Lzt = "<NAME>"
#let Cyx = "<NAME>"
#let Cxy = "<NAME>"
#let Wtl = "<NAME>"
#let Cx = "<NAME>"
#let Zzh = "<NAME>"
#let Ybj = "<NAME>"
#let Hs = "<NAME>"

// Content
= Introduction

Our team is developing an intelligent question-and-answer software aimed at enhancing the learning experience for university students and instructors. This platform will enable personalized study for students and provide tools for teachers to easily create and manage quizzes. The software will leverage the powerful text-generation capabilities of Generative Artificial Intelligence (GAI) to support this functionality. Additionally, our application is web-based, allowing users to access our service anytime, anywhere.

== Inspiration

The rapid advancements in Generative AI technology have demonstrated its potential in the fields of education and learning. We believe we can harness its strengths to create a tool that simplifies and enhances the educational process, making AI resources more accessible and effective for both students and educators.

== Innovation

Our initial research suggests that there are currently few, if any, applications that offer the kind of functionality we propose. 
While many tools guide users on how to write effective prompts for learning through AI, the content generated by GAI is often poorly managed. 
Students and teachers must organize and handle this content manually, which is both inefficient and time-consuming. 
Our software aims to solve this problem by offering a solution that not only generates answers but also organizes, stores, and visualizes the results in an intuitive and user-friendly way. In doing so, it also supports personalized learning for students and simplifies quiz creation and management for teachers.

= Functions and Subsystems

Our application is designed with two primary user groups in mind—students and teachers. Both will have access to shared functions that enhance their learning and teaching experience, while each group will also enjoy features tailored to their specific needs.

== Shared

=== Personalized Questions Creation

Both students and teachers can create personalized questions based on course material. Students can tailor questions to their study needs, while teachers can generate custom quizzes, ensuring a more targeted and effective learning experience.

=== Questions Storage and Delete

The software will offer centralized management of all questions. Users can categorize, store, and retrieve questions efficiently. This feature helps both students and teachers organize their study or teaching materials, reducing the manual effort required to manage generated content.

=== Account System

The application will feature a robust account management system for both students and teachers. Users will be able to create personal accounts with role-based access (student or teacher). The account system will offer:

==== Profile Management

Users can update personal details, set preferences for notifications, and manage their security settings (e.g., password updates).

==== Progress Tracking

For students, the account system will store their quiz history, performance data, and track their overall progress across sessions. 

==== User Authentication

Secure login methods will be in place, such as email/password combinations or OAuth integrations, ensuring privacy and protection of personal data.

== Student Side

=== Answers and Analysis

Students can answer the questions generated by GAI and receive AI-generated answers based on course material and keywords. The platform will also provide analysis of the answers, offering additional explanations or highlighting key concepts to enhance understanding.

=== Results Visualization

Students will be able to visualize their performance through intuitive charts and graphs, showing progress over time. This feature helps students track their strengths and weaknesses, making it easier to focus on areas that need improvement.

=== Mistake Bank

The software will automatically store incorrect answers in a personalized "Mistake Bank". This allows students to revisit their mistakes, review correct solutions, and reinforce learning by focusing on areas where they have struggled.

== Teacher Side

=== Questions Import and Export

Teachers can easily import and export questions in various formats. This function allows educators to streamline quiz creation by uploading existing questions or exporting quiz data for external use or archiving.

== Subsystems

Based on the functions outlined above, our application can be divided into three core subsystems, each responsible for handling specific functionalities:

=== Questions Management System

This subsystem will be responsible for all question-related operations, ensuring seamless interaction for both students and teachers.

=== Account System

This subsystem will manage all account-related functionalities for both students and teachers.

=== Evaluation System

This subsystem handles the analysis and visualization of results for students and teachers, providing valuable insights into performance.

= Job Distribution

Our application is built on modern web technologies and is divided into four key subsystems: Frontend, Backend, Database, and a General Library to interact with Generative Artificial Intelligence (GAI). Each subsystem will have its dedicated responsibilities to ensure smooth development and seamless integration.

== Frontend

The frontend subsystem will focus on building an intuitive and responsive user interface for both students and teachers. 

*Members:*

- #Cxy
- #Wtl
- #Zzh

== Backend

The backend subsystem will be responsible for interacting with frontend and database, and leverage the GAI Library to fullfil the functionality of the application. 

*Members:*

- #Cyx
- #Cx

== Database

The database subsystem will handle the data architecture and management.

*Members:*

- #Ybj
- #Hs

== General Library to Interact with GAI

This subsystem will be in charge of developing the general module that interacts with Generative AI, but this library will only serve for our specific function.

*Members:*

- #Lzt

= Role of Members

#let role_dev = "Developer"
#let role_leader = "Leader"

#align(center, [
  #figure(
      table(
      stroke: none,
      align: left,
      inset: (x: 20pt, y: 8pt),
      columns: 2,
      table.hline(stroke: 1.5pt),
      [*Name*], [*Role*],
      table.hline(stroke: 0.75pt),
      [#Lzt], [#role_leader, #role_dev], 
      [#Cyx], [#role_dev, Backend Manager], 
      [#Cxy], [#role_dev, Frontend Manager], 
      [#Hs], [#role_dev, Database Manager], 
      [#Wtl], [#role_dev], 
      [#Cx], [#role_dev], 
      [#Zzh], [#role_dev], 
      [#Ybj], [#role_dev], 
      table.hline(stroke: 1.5pt),
    ),
    caption: [the Role of Each Team Member], 
  )
])
