/Ora

An AI-powered time management web application that analyzes students’ schedules, assignment deadlines, and preferences to create personalized task lists and schedules to enhance productivity and reduce stress.

Primary LanguageJavaScript

Visitor Badge

Ora

Ora Thumbnail AI-powered time-management web application designed to help students organize their tasks, such as assignments, labs, quizzes, exams, and other homework-related materials for their courses. The app enhances students' time management by analyzing schedules, assignment deadlines, and personal preferences to create personalized task lists and schedules. Ora aims to boost productivity and reduce stress by automatically prioritizing tasks based on course credits, task weight, and deadlines.

For details on the OpenAI features we created, visit our separate GitHub repository here.

Check out the live project here. Watch our pitch video here.

Table of Contents

Screenshots

Tasks (List View) Page Tasks (Calendar View) Page
Tasks (List View) Page Tasks (Calendar View) Page
Profile Page Edit Task Page
Profile Page Edit Task Page
Create Course Page Create Task Page
Create Course Page Create Task Page

Acknowledgements

Contributors

Technologies

  • Next.js v14.1.3
  • React.js v18.0.0
  • JavaScript
  • Axios v1.6.7
  • Cloudinary v6.2.1
  • FullCalendar v6.1.11
  • MongoDB / Mongoose v8.2.1
  • Next-Auth v4.24.7
  • TailwindCSS v3.3.0
  • Node.js
  • Express v4.18.3
  • PDF-Parse v1.1.1
  • OpenAI GPT3.5 v4.28.4

Usage

Prerequisites

Prerequisites

Installation

Installation

  1. Install the latest npm package version.
npm install npm@latest -g
  1. Clone the repository to your local machine.
git clone https://github.com/towaquimbayo/Ora.git
  1. Installing required dependencies requires Node and npm.
npm install
Environment Variables Setup

Environment Variables Setup

For the project to run correctly, environment variables are required. Rename the .env.example to .env.

  1. Sign up for a MongoDB Atlas account at https://www.mongodb.com/cloud/atlas/register. Then create a database Cluster and connect your project to that Cluster by clicking on the Connect, selecting the Connect To Your Application option and copying the Database URI string as your DATABASE_URL. Finally, replace the username and password fields in the URI string with your database credentials.
  2. Create a Google OAuth app at https://refine.dev/blog/nextauth-google-github-authentication-nextjs/#for-googleprovider-make-sure-you-have-a-google-account/.
  3. Sign up for an OpenAI account and follow the documentation at https://platform.openai.com/docs/quickstart?context=node to obtain your API key and set up OpenAI.
  4. Create a Cloudinary account and follow the documentation at https://cloudinary.com/guides/front-end-development/integrating-cloudinary-with-next-js to obtain your API credentials and setup Cloudinary with Next.js
Run The App

Run The App

Running the application locally or in production is straightforward since both the frontend and backend are integrated into a single Next.js application running on port 3000.

  • Execute npm run build to build the application for production.
  • Execute npm run dev to run locally in development mode or npm start to run it using the production build.

Features

Task and Schedule Management

Efficiently organize and manage tasks and schedules to optimize productivity.

  • Personalized Task Lists and Schedules: The application analyzes students’ schedules and preferences to create personalized task lists and schedules, prioritizing tasks to enhance productivity and reduce stress.
  • Task Prioritization: Using OpenAI, the application prioritizes tasks automatically by considering course credits, task weight, and deadlines, helping students focus on the most important tasks first.
  • Calendar View: Students can view their schedules in a calendar format, drag and drop tasks to move deadlines, and create new tasks directly on the calendar.
  • Task List View: Tasks are displayed in a list format, sectioned by courses, allowing students to manage their workload efficiently.

Course and Task Management

Create, manage, and delete courses and tasks with detailed information.

  • Course Management: Students can create courses and input details such as course name, credits, professor’s name, status (completed or in progress), and a description. Each course can also include a course grading breakdown for categories of tasks such as exams, quizzes, assignments, and their respective percentage weight of the grade.
  • Task Management: For each task, students can specify the course it belongs to, the task title, type (assignment, exam, quiz, etc.), due date, and a description. Students can also upload files related to the task, such as PDF documents, to keep all relevant materials organized.

AI-Powered Features

Leveraging OpenAI to provide smart solutions and assistance.

  • Task Prioritization: The AI prioritizes tasks based on several factors, including course credits, task weight, and deadlines, ensuring that students focus on the most critical tasks first.
  • AI Chatbot: An AI chatbot powered by OpenAI acts as a study buddy facilitating natural language conversations. Students can interact with the chatbot about task requirements or deadlines, upload files for analysis, and receive help with their tasks or get answers to their questions.

Productivity Tools

Additional tools to help students stay organized and efficient.

  • File Uploads: Students can upload and attach files to tasks, ensuring that all necessary documents are easily accessible.
  • Drag and Drop: In the calendar view, tasks can be moved by dragging and dropping, making it easy to adjust deadlines and manage schedules on the fly.
  • Status Tracking: Students can mark tasks and courses as completed or in progress, helping them track their progress and stay on top of their workload.

Awards

Ora has received significant recognition for its impact and innovative use of technology. At the QDS Hacks 2024 Hackathon, we were honoured with the following award:

  • 🥉3rd Place: Competing against over 300+ students, Ora stood out for its potential to enhance student health and well-being. Our AI-powered solution offers a revolutionary approach to homework time management, leveraging intelligent algorithms to prioritize tasks and reduce stress.

These awards reflect our commitment to creating a high-impact, user-friendly platform using cutting-edge technologies.

For more details, you can read our Devpost submission here.