Activity

Qi An

Another notebook update

  • Actually made the notebook page show a list of notebooks (will be image instead of an orange box)
  • Solved tons of bugs, including sending the same files twice on every generation! Cut time down to about 30s as compared to 1min+
  • Polished up file selector UI
  • Added note length selector too!

Will work on chats next, including hopefully uploading files (need to find a way to do it)

Attachment
Attachment
Attachment
0
Qi An

Notebook is almost there!

Refactored most of the notebook code to better mirror the way i coded drive.

Also had to switch everything to new types, especially the new file type since files are linked to mesa drive now. Made sure the fundemental notebook functions still work (probably buggy)

  • Will update the mesa drive selector to be bigger and support more actions like uploading files directly.

Anyhow here’s a screenshot after 2 hours of editing like 20 files 😭

Attachment
0
Qi An

Oops, hotifx :p (for drive)

Forgot to make files class-specific! Also fixed/changed move item dialog:

  • Added creating folders
  • Fixed moving to root drive and moving to same place
  • Removed the ability to move to iself
  • Removed open from row actions (too buggy)

Also started working on the file selector that will be used by notebooks. Don’t have any screenshots yet though

Attachment
Attachment
0
Qi An

Mesa Drive is now done!

I should REALLY make more regular devlogs but here we go anyways:

Intention/Context

Mesa Drive allows users to easily organise all source material, such as class notes, slides, summaries, etc. Websites may come in the future.

These source materials will be in a many to many relationship with notebooks, flashcards and quizzes. Allows for sources to be renamed, moved, or deleted easily.

Full CRUD functionality

From the previous devlog, I’ve finished creating, reading, updating and deleting of folders and files. Folders are just 0 byte files, while files have a parentId linked to folder ids.

Will hopefully be able to add drag and drop at some point and also adding from Google Drive!

Next steps

Implement the new FileBrowser with notebook sources. This will be the first step into storing notebooks.
When files can be linked, notebooks storing can be done easier and lay the groundwork for the storing of chats, flashcards and quizzes.

** Nerdy details:**
Notebooks and files will be in a many-to-many relationship such that notebooks can have multiple files, and files can be linked to multiple notebooks.

Till next time :D

0
Qi An

Mesa.. Drive??

Laying the groundwork for Mesa Drive, which will store all the user’s notes, slides, and documents. These are real files, not the arbitrary library files like flashcards or quizzes.

  • Reworked the file system. Files are uploaded to R2, and an accompanying file row is added to files in the database.
  • This ensures that renaming or deleting files when they are eventually linked to topics won’t lead to any conflicts.
  • Also reduces calls to r2 which can get pricey!

Right now, only folder creation works. I’ll be working on uploading and actually navigating through folders in my next devlog.

Attachment
0
Qi An

Notebook, classes and topics

Forgive me, but I completely forgot about devlogging 😭.

Firstly, notebook

The past week,

  • I’ve added preliminary chat to the notebook, allowing you to ask questions about your sources.
  • Along with that, files are cached for 15 mins on Google’s servers. Initially it costs more, but due to the high frequency the files were be used by ai, it ends up being a cost saving!
  • Also added sick new animations to show topics being generated and automatically embedding images :)

Some concerns: It’s considerably slower than before. I’m still working on finding out why.
Since I was away from home, I forgot to link hackatime up and only realised when i was done (it took like 5 hours)

Classes

The temporary dashboard works now. Had to write an icon picker for Lucide with the help of AI (I’m being honest) cause i was really confused about what React-Window actually does. I made the search function myself, though!

Creating and deleting classes also works, along with a beautiful class sidebar that collapses to icons.

Topics

Again, only added creating and deleting topics. Can be done through the sidebar for now

Next steps

Linking notebook creation to classes and managing notebooks by class. May also want to link them to topics at some point.

Attachment
Attachment
Attachment
0
Qi An

Mesa Notebook isn’t just a mockup anymore! It works by uploading sources, then generating a summary. Only the summary notes works, tools are still wip.


The summary will be customisable in the next devlog, allowing users to adjust note length, focus on specific topics, or simply use natural language to describe exactly how the notes should be.

Right now, the notebook doesn’t save, but sources persist. Will be added to each subject’s dashboard once I get the tools to work.

Until next time! 🚀

Attachment
0
Qi An

The demo is now an AI notebook, inspired by NotebookLM from Google.

  • Users will upload sources such as class notes or slides
  • AI automatically generates a set of notes (might be editable, haven’t figured that out)
  • Users can use tools to make flashcards, podcasts that read out the notes, quizzes to test knowledge and finally chat to ask questions about the set of notes.
  • Ideally highlighting certain lines can also trigger the chat input.
    .
    Uploading sources works with Cloudflare R2, and that’s about all that works right now :( Will be working on the notebook panel next!
Attachment
0
Qi An

Worked on a temporary dashboard that currently displays mock data, and a test demo to figure out prompts before I actually work on the quiz UI.

Have to work around vercel’s serverless function payload limit preventing me from uploading files in production, so I’ll have to explore cloudflare r2 for that. Would likely be the base for the document manager later on!

Attachment
Attachment
0
Qi An

The start 🚩


This project was started to help students, like myself, cope with numerous content-heavy subjects.

Considering current LLMs’ rather incredible context length and reasoning skills, I found it is the best time create an “AI tutor” of sorts, as a gap between self-study and a real teacher. It is in no capacity meant to replace school or classes, but rather help students digest information effectively.

Goal setting

The goal for this project is to aid students in grasping content-heavy subjects by providing adaptive learning (challenges are generated on the fly to better suit each learner’s profile) and AI-powered memorisation tools like flashcards, quizzes, and practice tests.

By the end of this project, I hope to have created a low-cost yet powerful AI learning tool to better assist struggling students with fewer resources or heavier learning requirements.

Everything else

Anyways, here’s what I did in this devlog:

  1. Started the Nextjs project
  2. Linked a Neon database
  3. Set up better-auth authentication with email verification and sign up

I’ll be tackling sign in and a dashboard in the next devlog. Check the attachment for some Figma leaks!

Attachment
Attachment
0
Qi An

Shipped this project!

Hours: 8.15
Cookies: 🍪 169
Multiplier: 20.7 cookies/hr

ESDF is a small app that allows anyone to remap keys, such as WASD to ESDF. It is made in Python, and compiled to an exe. This idea was for my friend who broke their W key and had to play Roblox on the arrow keys, which can be quite tedious since Roblox currently doesn’t offer any way to remap movement keys.

While Python is easy to code, it can be slightly inefficient, but I believe the performance drawbacks are quite negligible. Would also like to make the settings UI native in the future, and add more game selection. Overall, I think this ship was a success!

Qi An

Rather big devlog, but here’s a rough breakdown of what I finished:

  • Keybinds (f8) to toggle between on and off!
  • ESDF can now turn on automatically when you launch a selected game (from the settings panel)
  • Icon in the system tray shows status
  • Settings and custom presets are now persistent
  • Launches on boot 🚀
  • Compiled app to a windows exe (app only works on windows right now)
Attachment
Attachment
0
Qi An

The settings UI is now fully functional and persistent! Configurations now save between restarts. Doing this in plain HTML is quite a chore, and the code is a little messy, but I guess it works anyways :/

Will work on the core functionality of the app (which is to remap keys) soon. Already experimented with a library and have a rough idea of how to make it all work together. Gonna be in the next devlog though

0
Qi An

Decided on the tech stack and designed the UI! The app will run on Python and use PythonWebview to show a web-based UI. In addition, there’s a tray icon for easy access that would enable or disable the app.

The idea would be to have predefined or custom presets that activate automatically when a selected game is launched. This behaviour can be changed to always activate when the app is launched or only activate when the tray is clicked.

Attachment
0