Skip to content

Requirements

Henri Sjöblom edited this page Nov 12, 2024 · 20 revisions

General information

Study Tutor is a web app designed to help students learn better. Study Tutor combines modern web technology with Open AI assistant to create an easy-to-use study platform.

Features

Dashboard

A personalized area where users can track their learning progress and access study resources.

Flashcards

AI-generated questions tailored to personalized learning. The cards provide instant feedback, allowing student to learn anytime, anywhere.

Study Chat

An AI chatbot that answers study related questions, provides explanations, and offers study tips.

Who it is For

While our main focus is on students, Study Tutor is designed for learners of all ages and anyone who wants to learn new things.

Technical requirements

Main technologies are:

  • Next.js
  • TypeScript
  • Tailwind CSS
  • Supabase
  • Open AI API

For more details, visit our Technologies page.

Functional requirements

Feature 1 – Landing Page

  • Description: The application's front page. It offers login and sign-up options, and displays information about the application.
  • Size: L
  • Acceptance Test:
    • Provides login and sign-up options.
    • Displays application information clearly.
  • Link to issues: #17, #81

Feature 2 - Chat Page

  • Description: Chat that allows users to talk with an AI. It can be used to ask questions and get answers to small problems related to studying.
  • Size: XL
  • Acceptance test:
    • The chat functions as intended. This means that the user can send messages, message history is retrieved successfully, create new threads and delete existing threads.
  • Link to issue: #47

Feature 3 - Flash cards home

  • Description: Flash cards frontpage
  • Size: XL
  • Rough designs: (image below)
  • Acceptance test:
    • Creating new flashcards work with different settings
    • History is loaded properly
    • You can delete cards from history
  • Link to issues: #5, #22, #32

377238918-d253020a-4f53-4cab-839d-56a68e9ab3d5

Feature 4 - Flash cards playing

  • Description: Flash cards playing
  • Size: XL
  • Rough designs: (image below)
  • Acceptance test:
    • Cards respect given settings
    • Are loaded correctly
    • Playful animations
    • Statistics are shown and saved
  • Link to issues: #48, #67

image

Feature 5 – Dashboard

  • Description: Displays user information about flashcard history and allows the user to start new flashcard or go to the study chat.
  • Size: L
  • Acceptance Test:
    • Displays flashcard history.
    • Allows the user to start new flashcards.
    • Provides access to the study chat.
  • Link to issues: #36, #65, #91

Feature 6 – Settings Page

  • Description: User’s settings page. Displays the user profile and allows users to change personal information, password, and default flashcards.
  • Size: L
  • Acceptance Test:
    • Allows users to update personal information.
    • Provides options to change the password.
    • Allows setting default flashcards.
    • Displays user profile information clearly.
  • Link to issue: #47, #82

Feature 7 - Signing in

  • Description: User can login
  • Size: M
  • Acceptance test:
    • User can sign in with no issues
    • Proper errors are shown if credentials are invalid
  • Link to issues: #12, #25

Feature 8 - Creating a user

  • Description: User can register
  • Size: L
  • Acceptance test:
    • User can register with no issues
    • Proper errors are shown if credentials are invalid, for example invalid email or too short password
  • Link to issues: #12, #25

Non-functional requirements

Laws and GDPR

If this project were to be released for public for real and for commercial use, we would need to create privacy policies and terms of service. At the moment we collect the following data strictly for critical app functionality:

  • User email
  • User password (hashed)
  • User's created cards
  • User's history of played cards etc. stats
  • User's chat history with the chat bot

None of the data collected are sold to third-parties and will be handled with proper care. We cannot guarantee this for third-party services we utilise like Supabase and OpenAI API. Supabase's privacy policy can be seen here, and OpenAI's here.

Security

All the API routes are secured by HTTPS and can be only accessed by the authorized user. The hosting server and databases will be only accessable to developers. Users can delete all of their data from our system if they wish.

Interfaces

This application is connecting to Supabase and Open AI API. For more details, visit Technologies page.