Inspiration
Navigating the demands of a student's life can be a juggling act, with multiple assignments vying for attention and due dates looming on the horizon. Recognizing the inherent challenges in remembering these crucial dates, we embarked on a mission to streamline the academic experience.
What it does
CanvasAlerts taps into the power of the Canvas API to fetch up-to-the-minute information about your assignments. By directly integrating with your Canvas account, the bot eliminates the need for manual checks, ensuring that your assignment due dates are always accurate and current.
What sets CanvasAlerts apart is its proactive approach to reminders. Personalized notifications will be sent directly to your Telegram, strategically timed before each assignment deadline. The bot doesn't burden you with excessive notifications; instead, it lets you customize reminder durations, putting control in your hands. Whether you prefer a gentle nudge a day before or a more immediate heads-up hours prior, CanvasAlerts tailors its reminders to suit your unique preferences.
In essence, CanvasAlerts transforms your Telegram into a dynamic hub of academic support. No longer will you need to juggle multiple deadlines or worry about missing crucial assignments. With CanvasAlerts, your focus can shift from remembering due dates to excelling in your coursework, confident that timely reminders have your back.
How we built it
Delving into the technical intricacies of our project, CanvasAlerts is a masterpiece crafted with the T3 Stack, combining Next.js, tRPC, Prisma, Tailwind CSS, Telegraf, and more. This carefully curated stack offers a powerful blend of modularity and simplicity, providing the flexibility needed to implement unique changes seamlessly across different sections of our web application.
T3 Stack Components: Next.js: Serving as the backbone of our web application, Next.js empowers us with server-side rendering, a dynamic routing system, and an efficient build process. Its modularity allows for smooth transitions between different sections of our project.
tRPC (Typed RPC): This technology forms the backbone of our API layer, promoting type safety and ensuring that data flows seamlessly between the front-end and back-end. With tRPC, our communication is not only efficient but also strongly typed.
Prisma: Acting as our data access layer, Prisma simplifies database interactions with its elegant and type-safe queries. This integration streamlines database operations and enhances overall data management.
Tailwind CSS: Handling the styling aspects of CanvasAlerts, Tailwind CSS allows for rapid and maintainable styling. Its utility-first approach facilitates the creation of a visually appealing and responsive user interface.
Telegram Bot Implementation: For the Telegram bot, we harnessed the power of Telegraf, a robust Node.js framework dedicated to Telegram bot development. Telegraf takes care of the low-level communication intricacies, allowing us to focus on crafting intelligent and user-friendly bot logic.
Challenges we ran into
One of the biggest issues that we faced was the time constraint of this competition, we were only given around 24 hours to complete the functionality of our project. It was also challenging to sync the databases with both CanvasAPI, our webpage, and our telebot with multiple requests from one another.
Accomplishments that we're proud of
Currently, we have a fully functional frontend that shows the user all tasks that are due. When the deadline is over or the task is completed, we have implemented a feature that automatically adds a green checkmark to it. CanvasAlerts goes beyond a one-size-fits-all approach. Users can tailor their experience by accessing the web application's settings. Here, they can fine-tune custom notification preferences, deciding how often they wish to receive reminders from the Telegram bot. The team has also successfully implemented scheduled messages through the Telegram bot. This intelligent feature ensures that users receive timely notifications about which assignments, from which modules, are due.
What's next for CanvasAlerts
We would like to fine-tune and improve the bot by adding functions like stopping notifications from being sent out once the student has completed the assignment. Thereafter, we will run a series of tests before officially rolling it out for students in NUS to use effectively throughout school semesters. For accessibility, we would also like to allow students to sign in and change their preferences through the telebot directly without accessing the webpage.
Built With
- canvasapi
- next.js
- node.js
- prisma
- react-native
- tailwindcss
- telegraf
- trpc
- typescript
Log in or sign up for Devpost to join the conversation.