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.
Tasks (List View) Page | Tasks (Calendar View) Page |
Profile Page | Edit Task Page |
Create Course Page | Create Task Page |
- Mangat Toor GitHub LinkedIn
- Towa Quimbayo GitHub LinkedIn
- Noufil Saqib GitHub LinkedIn
- Abhishek Chouhan GitHub LinkedIn
- Bhavnoor Saroya GitHub LinkedIn
- Gurnoor Tatla LinkedIn
- 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
Installation
- Install the latest npm package version.
npm install npm@latest -g
- Clone the repository to your local machine.
git clone https://github.com/towaquimbayo/Ora.git
- Installing required dependencies requires Node and npm.
npm install
Environment Variables Setup
For the project to run correctly, environment variables are required. Rename the .env.example
to .env
.
- 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 theConnect To Your Application
option and copying the DatabaseURI
string as yourDATABASE_URL
. Finally, replace theusername
andpassword
fields in the URI string with your database credentials. - Create a Google OAuth app at https://refine.dev/blog/nextauth-google-github-authentication-nextjs/#for-googleprovider-make-sure-you-have-a-google-account/.
- 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.
- 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
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 ornpm start
to run it using the production build.
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.
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.
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.
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.
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.