Commit Graph
100 Commits
Author SHA1 Message Date
Rotimi Best 9a7018eb34 chore: remove unused dependencies 2025-10-04 11:01:22 +01:00
Rotimi Best fd2e3f5d76 chore: clean up environment variable usage and formatting in configuration files
- Updated docker-compose.yaml to use double quotes for version and port mappings.
- Removed DEPLOYMENT_PROVIDER from global environment variables in turbo.json and Dockerfile.
- Adjusted dashboard build command in package.json to remove DEPLOYMENT_PROVIDER.
- Cleaned up .env.example by removing the DEPLOYMENT_PROVIDER comment.
- Simplified SvelteKit adapter condition in svelte.config.js.
2025-10-04 08:13:01 +01:00
Rotimi Best be9489a8e8 chore: add railway.json file 2025-10-04 08:01:50 +01:00
Rotimi Best 629753bcd0 chore: update docs of supabase instructions 2025-10-04 06:56:14 +01:00
Rotimi Best 3bbc5d0927 chore: vercel builds failing for dashboard and docs (#576)
* chore: improvements

* update README
2025-09-28 20:57:45 +01:00
Rotimi Best 51d30e27f0 chore: update docs 2025-09-28 20:09:22 +01:00
Rotimi Best 7e0443fc37 feat: add certificate and course HTML templates
- Introduced new HTML templates for certificate and course pages.
- The certificate template includes dynamic placeholders for student and course details.
- The course template features structured lesson notes and additional resources.
2025-09-28 19:54:50 +01:00
Rotimi Best 85474ea022 chore: update umami domain 2025-09-27 18:12:29 +01:00
Rotimi Best 2c3ee88e13 chore: move course analytics a step after content 2025-09-21 20:44:30 +01:00
Rotimi Best 6d68351a46 feat: end to end api type safety with redis rate limiting (#573)
* feat: support hono rpc

* add wrangler file

* update name of wrangler file

* add wrangler as a dependency

* add compatibility_flags

* trigger ci

* core: add health check to docker file

* expose port 80

* update custom healthcheck

* feat: implement openapi

* install dependencies in root

* debug yml

* update yml

* update port

* update dockerfile with envs

* completely move away from apiClient

* rename backend to api

* refactor: update server descriptions and comment out local spec saving

* update lock file

* use api.classroomio.com

* add support for redis

* fix: add missing line break in WelcomeModal.svelte

* refactor: remove wrangler configuration and update Vite config for API integration
2025-09-21 19:35:41 +01:00
Rotimi Best a6880f1b54 feat: implement percentage calculation utility and refactor analytics to use it
- Added `calcPercentageWithRounding` function for consistent percentage calculations with rounding.
- Updated course and user analytics to utilize the new utility for progress and average grade calculations.
- Removed redundant rounding logic from analytics functions.
2025-09-18 10:34:54 +01:00
Rotimi Best bcd17dd0df feat: add unique constraint to lesson_completion table 2025-09-18 09:16:46 +01:00
Rotimi Best caa48003af fix: include types 2025-09-15 19:15:50 +01:00
Rotimi Best fb0131de2d fix: load documents on client 2025-09-15 19:14:22 +01:00
Rotimi Best def5318c07 refactor: improve number rounding and handling in analytics calculations 2025-09-15 14:17:37 +01:00
Rotimi Best 7d150ea500 fix: ensure overall average grade defaults to 0 and adjust course image fallback 2025-09-10 21:23:36 +01:00
Rotimi Best a078971064 fix: update loading state variable for input fields in invite page 2025-09-10 21:12:50 +01:00
Rotimi Best 01e9aa9700 chore: hide login fields if logged in user matches invite email 2025-09-10 21:01:17 +01:00
Rotimi Best f161e8dbfd debug: google auth + invite 2025-09-10 20:45:50 +01:00
Rotimi Best 98acd93133 fix: disable accept button if still fetching user details 2025-09-10 20:39:16 +01:00
Rotimi Best 47563410d8 fix: allow google invite user to accept invite 2025-09-10 20:05:37 +01:00
Rotimi Best f63b3021f6 feat: enhance AuthUI with redirectPathname prop for improved navigation 2025-09-10 18:49:50 +01:00
Rotimi Best 34a4e867bc debug: team member invite with google auth 2025-09-10 18:27:49 +01:00
Rotimi Best 06de8d44b8 chore: add orgname to org landing page header 2025-09-10 18:17:27 +01:00
Rotimi Best 8bafacb792 fix: remove loading state before adding group member 2025-09-10 17:26:22 +01:00
Rotimi Best f87a8beb17 chore: change node version to 20.19.3 2025-09-10 17:24:35 +01:00
Rotimi Best f60809a249 fix: only redirect in layout only if on redirect page 2025-09-10 17:18:01 +01:00
Rotimi Best 12c0f00007 debug: auth redirect 2025-09-10 16:50:31 +01:00
Rotimi Best b73f2cc150 debug: sign in with google 2025-09-10 16:35:47 +01:00
Rotimi Best 7a77bd6c79 chore: check permission only after org is loaded 2025-09-09 13:12:56 +01:00
Rotimi Best 05fc61330c chore: remove pnpm version from package.json 2025-09-07 23:22:13 +01:00
Rotimi Best c421ec29d9 chore: add custom domain validation for classroomio.com 2025-09-07 16:44:32 +01:00
Rotimi Best 513dc1c6d7 fix: add .nvmrc to classroomio-com 2025-09-07 16:40:32 +01:00
Rotimi Best 733e24ae75 chore: use node v20.19.4 2025-09-07 16:30:57 +01:00
Rotimi Best 11a65783e7 chore: upgrade to node 22.12 2025-09-07 15:04:09 +01:00
Rotimi Best 33cb6286a9 chore: domain can't include classroomio.com 2025-09-07 10:57:06 +01:00
Rotimi Best 9055c45384 chore: move IS_SELFHOSTED to public env 2025-09-07 10:24:34 +01:00
Rotimi Best f7a66f851f fix: rename provider_id column to id in auth.identities table 2025-09-04 13:29:41 +01:00
Rotimi Best aacd95f92f feat: add error handling for unauthenticated users in hooks middleware 2025-08-30 08:00:25 +01:00
Rotimi Best 7dfabf6e7f fix: center tooltip text 2025-08-27 22:21:03 +01:00
Rotimi Best 1c2760fd50 fix: add fallback empty array for APP_SUBDOMAINS when env variable is undefined 2025-08-26 16:46:01 +01:00
Rotimi Best 392e1abd1f fix: allow user navigate to profile settings after coming to org settings first 2025-08-23 00:35:29 +01:00
Rotimi Best f56c86ab87 feat: convert get started button to link on employee training page 2025-08-08 05:09:45 +01:00
Rotimi Best 279d10a914 feat: add Polish language support 2025-08-08 04:53:38 +01:00
Rotimi Best 0d0719e8f9 feat: implement row-level security policies for course-related tables and actions 2025-08-08 04:12:46 +01:00
Rotimi Best 195e5e8fd2 refactor: reorganize imports and add comment for selfhosted instances 2025-08-05 17:40:31 +01:00
Rotimi Best 0441b6ad12 style: reorder Tailwind CSS classes in PricingSection component and add prettierignore file 2025-08-05 02:01:03 +01:00
Rotimi Best c841823bda fix: prevent duplicate comment channel subscriptions and improve translation check 2025-08-03 17:59:21 +01:00
Rotimi Best db21265136 fix: add '/api/verify' to public routes in hooks.server.ts 2025-07-30 20:36:04 +01:00
Rotimi Best d6abb425d7 chore: update docker-compose.yaml to include optional node_modules and dist volume mounts 2025-07-29 00:03:37 +01:00
Rotimi Best 1eb0099938 chore: update org.ts to trigger CI 2025-07-21 21:53:00 +01:00
Rotimi Best 8a6d35b8ed fix: update currentOrgDomain to derive root domain from window location 2025-07-21 21:33:50 +01:00
Rotimi Best be0d05abc6 fix: remove pgsodium extension creation from migration and clean up data.sql 2025-07-20 20:21:23 +01:00
Rotimi Best d45a82a62c chore: add supabase command to package.json 2025-07-18 20:57:02 +01:00
Rotimi Best 361d294b83 fix: update identities table schema in seed.sql to include id column 2025-07-18 20:19:37 +01:00
Rotimi Best 5737765cb9 fix: update node version from 18.17 to 18.18 (#563)
* fix: update node version from 18.17 to 18.18

* update nvmrc

* add nvmrc
2025-07-17 12:23:56 +01:00
Rotimi Best f3f3f2e599 fix: courseapp failing due to typescript eslint 2025-07-17 12:02:20 +01:00
Rotimi Best e9f38b9b9c fix: backend docker build was depending on root node_modules 2025-07-15 18:39:42 +01:00
Rotimi Best c1f3761996 chore: update return type of generateCertificate function to implicit 2025-06-26 14:13:45 +01:00
Rotimi Best 179faf0d2c fix: katex fetching from the backend 2025-06-13 16:56:09 +01:00
Rotimi BestandIniubong Obonguko 82be557a42 chore: move backend to hono + typescript (#558)
* feat: setup secure presigned uploads and downloads

* clean up

* update lock

* Get presigned url finally working

* 557: Migrate backend to hono + ts

* chore: update Dockerfile and package.json for backend configuration

* add dev command

* remove unused packages

* Enhance backend API and frontend components for course management

- Updated CORS configuration in the backend to allow specific methods and headers.
- Refactored lesson download endpoint to use a new route for PDF downloads.
- Removed unused certificate download functionality from the lesson router.
- Updated frontend components to reflect changes in API endpoints and improve video upload functionality.
- Introduced new video upload component and adjusted video handling in lesson materials.
- Cleaned up unnecessary imports and optimized component structure for better performance.

* PR cleanups

* Enhance email configuration by adding SMTP_SENDER environment variable

- Updated docker-compose.yaml to include SMTP_SENDER.
- Modified Dockerfile to accept SMTP_SENDER as an argument.
- Updated environment schema in env.ts to define SMTP_SENDER as optional.
- Adjusted mail service to use SMTP_SENDER for the email 'from' field.
- Updated documentation to reflect the new SMTP_SENDER variable.

* Remove debug log statement from sendEmail function

---------

Co-authored-by: Iniubong Obonguko <[email protected]>
2025-06-09 01:38:57 +01:00
Rotimi Best 9eb7b01587 fix: monorepo install error on backend docker 2025-06-03 09:52:19 +01:00
Rotimi Best 6c10bc8ee9 feat: add an image to examprep template (courseapp) 2025-06-01 11:06:15 +01:00
Rotimi Best 8dd019790c docs: add missing templates in courseapp README.md 2025-06-01 05:03:22 +01:00
Rotimi Best f92cc37f0c fix: update lock file (courseapp) 2025-06-01 04:47:15 +01:00
Rotimi Best 9c1b0bb9c0 feat: enable fonts by theme(courseapp) 2025-06-01 04:45:16 +01:00
Rotimi Best 830759d125 fix: stop auto removal of imports in md files 2025-05-20 18:56:22 +01:00
Rotimi Best cbdb846a92 fix: disable formating of imports in mdx 2025-05-20 12:35:20 +01:00
Rotimi Best 5c66c99f80 fix: update dockerfile paths in docker-compose and fly.toml for backend service 2025-05-20 12:21:31 +01:00
Rotimi Best b7933d16b0 fix: pnpm-lock.yaml is not up to date with apps/dashboard/package.json 2025-05-20 12:04:31 +01:00
Rotimi Best 9aeefc9f4f feat: Finally support a docker compose files that works (#555) 2025-05-20 01:37:58 +01:00
Rotimi Best 512fe06722 fix: show validation message in community ask page (#553)
* fix: show validation message in community ask page

* fix course app build issues
2025-05-16 12:08:42 +01:00
Rotimi Best 8d4a7b9ccf fix: add missing dependencies by vercel 2025-05-03 15:38:02 +01:00
Rotimi Best f8852ad34b chore: use vercel adapter in dashboard 2025-05-03 15:26:10 +01:00
Rotimi Best f343ca7974 docker improvements + delete unused package 2025-05-03 14:46:01 +01:00
Rotimi Best 50e89f90c9 Revert "db: squash migrations"
This reverts commit d010531ef7.
2025-04-21 01:01:23 +01:00
Rotimi Best 52e181adf8 chore: remove more unused code 2025-04-19 23:33:35 +01:00
Rotimi Best d010531ef7 db: squash migrations 2025-04-19 23:21:43 +01:00
Rotimi Best 1ab07d8d95 fix: disable adding custom domain on free plan 2025-02-19 17:13:29 +01:00
Rotimi Best 9317b79afb chore: add user_id to response header 2025-02-16 09:24:13 +01:00
Rotimi Best 9bd4c4d319 chore: change upgrade prompt text 2025-02-06 09:43:39 +01:00
Rotimi Best 68024d5ed5 chore: update pnpm lock and fix http error 2025-01-30 10:35:41 +01:00
Rotimi Best 4e2d5dd16f chore: load stars on client 2025-01-30 10:18:16 +01:00
Rotimi Best 8eb9236bc0 chore: move api to hono + cloudflare 2025-01-18 11:13:05 +01:00
Rotimi Best 76c28ec70e fix: downgrade lemonsqueezy version 2025-01-10 09:47:26 +01:00
Rotimi Best 5081180bd9 chore: update lock 2025-01-10 09:29:41 +01:00
Rotimi Best 6ab64a26e5 feat: open billing for lmz customers #538 2025-01-10 07:53:00 +01:00
Rotimi Best 13fb58176f feat: add @polar-sh/sveltekit (#539)
* feat add @polar-sh/sveltekit

* remove all lemonsqueezy text
2025-01-09 01:30:01 +01:00
Rotimi Best 4d4b1f12e2 chore: use early adopter monthly product id 2025-01-06 04:16:28 +01:00
Rotimi Best 9ede3319b5 fix: migration syntax error 2025-01-06 04:03:19 +01:00
Rotimi Best 37f46b68c7 fix: make subscription_id not required 2025-01-06 04:00:19 +01:00
Rotimi Best 2a575c4955 fix: debug webhook error 2025-01-06 03:53:14 +01:00
Rotimi Best de1398b3a2 feat: migrate from lemonsqueezy to polar (#535)
* feat: move from lemonsqueezy to polar

* update lock

* add migration files

* test with demo product id
2025-01-06 03:36:00 +01:00
Rotimi Best 32ba251b77 feat: move lesson comments under lesson note 2025-01-04 05:55:14 +01:00
Rotimi Best 5f367a9540 chore: sort top courses by completion and spacing fixes #531 2024-12-31 17:47:07 +01:00
Rotimi Best e4c599044e chore: ui improvements on organisation stats #531 2024-12-31 17:18:42 +01:00
Rotimi Best c68bfb62b5 feat: organisation home page with analytics (#532) 2024-12-31 17:04:07 +01:00
Rotimi Best 445c21dbcb chore: blog ui and text improvements 2024-12-31 01:37:43 +01:00
Rotimi Best 09ef36de99 docs: students analytics blog post 2024-12-31 01:15:51 +01:00
Rotimi Best ae55349f27 chore: use session to update lastSeen and UI tweaks 2024-12-30 12:25:43 +01:00