Skip to content

Repository files navigation

What is OffCourseLearn?

OffCourseLearn is a personal offline course learning tracker that helps you manage and watch your locally stored course files.

  • Organise and track your local course files
  • Watch videos with progress tracking
  • Take notes and create bookmarks
  • Tag and filter courses by topic
  • Track wishlisted and externally hosted courses

preview (See more screens in docs/screens )

Tech stack

  • Next.js 16 (App Router)
  • PocketBase (SQLite backend)
  • Tailwind CSS + shadcn/ui
  • TanStack Query

AI-Generated Code Notice

Basically almost all the code in this project was created by LLM, as this project was started to learn how to work with such tools, see their capabilities, and while on it - making something useful I actually wanted for some time but just wouldn't find time to do on my own.

So as far as it goes - I find this project useful and use it regularly, but beware this has not been thouroughly reviewed, may (and for sure does) contain bugs, and probably contains some security holes. See License & Usage guidelines below, before you decide to set it up on your server.

License & Usage guidelines

Feel free to use this project as you want as long as you do it for your own, personal reasons and not use it as a basis for any commercial endeavours.

As mentioned in the notice on AI-Generated code above, this project may contains security issues and other bugs, so be sure to run it on infrastructure you have control over. I would not recommend to expose this outside your local network. I also do not take any responsibility for any damages or issues. The code is open, feel free to review prior to setting it up. I do not provide support, as this is something I just get to from time to time.

And finally - please use this tool ethically. Use it for the courses you bought or have legitimate access to.

Why was this project created?

You probably don't care, though since you got here, maybe you were looking for something like that.

I've bought/signed up for/enrolled in quite a few courses along the years. Some of them disappeared with time due to different reasons. Some, I have even forgotten I signed up for. Most of them were published on the platforms that lacked features I wanted, like adding notes, reasonable progress tracking or they had players that irritated me. Not mention, each platform was at a least a bit different.

Then I learned I am actually not the only one having such issues. So the idea came up and AI all over and so on. Before starting this project I tried to check/test/configure several different tools, both well-established learning systems and some open source project available on github.

The core idea

So the core idea is that you download [1] videos from the course you bought, sensibly organize into folders (modules/lessons) and want to track your progress, make notes etc. You want a system for that, and you do not want to duplicate the work of adding each video lesson manually. Therefore OffCourseLearn is to help - you run it through Docker container (you configure it to point to your courses folder) and you just add the courses you want.

[1] This tool does not download anything nor will it ever do so.

How to set it up?

Docker build

Best way to do it is through Docker. See the docker-compose.yml file. I build and share Docker image, so that you don't have to build it on your own, just point it to:

image: sinnerinc/offcourselearn:latest (or particular tag, if for some reason you need/prefer other version)

I built it so that it's just one image, containing the app and pocketbase (database layer) to be as simple to deploy as possible.

Config

Ensure you map your local folders to container folders, so that you do have persistence and app has access to your courses:

- ./path/to/pb_data:/pb_data
- /path/to/courses_directory:/courses

User

Since you may want to run it on the network and don't want your younger brother to delete all your progress, this app requires login.

See scripts/create-test-user.sh, important line is this:

docker exec "${CONTAINER}" /pb/pocketbase superuser upsert "${EMAIL}" "${PASSWORD}" --dir /pb_data

This creates superuser in pocketbase, that you can use to login to the app, and browse the data directly in db, shall you ever needed to do so.

Docs in progress

This docs (and the app actually) is work in progress, hopefully I will be improving it over time, but with many issues LLMs are there to help.

Roadmap

I have no particular roadmap on where this app should go, what features need to be there, etc.

However:

  • I'd like to add some better documentation section, probably set it on my website
  • Create some youtube walkthrough video
  • Still thinking on whether turn this into multi-user tool, or disable requirement to login at all (no younger brother ;))
  • Introduce some smaller ideas I have in my mind (exporting notes, maybe some integration with Obsidian, activity tracker, etc.)

About

OffCourseLearn is a personal offline course learning tracker that helps you manage and watch your locally stored course files.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages