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 Best and Iniubong 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
Rotimi Best
381776f388
feat: automatically detect language on server and translate UI ( #530 )
...
* feat: detect language on the server and translate page
* translate auth pages
* PR reviews
2024-12-28 23:11:55 +01:00
Rotimi Best
1f1ee8afd3
fix: link validation not working for embed links
2024-12-26 20:49:08 +01:00
Rotimi Best
71d87c8bd9
fix: course settings warning popup
2024-12-26 07:24:41 +01:00
Rotimi Best
4b1a45dfe4
chore: refactor +layout.svelte
2024-12-26 07:23:46 +01:00
Rotimi Best
f5e2d85a76
chore: remove unused dependencies
2024-12-26 07:04:29 +01:00
Rotimi Best
6a6df6b939
docs: add demo to courseapp README
2024-12-26 06:55:58 +01:00
Rotimi Best
80dc392346
feat: implement invite, delete and share actions on course card. #513
2024-12-23 23:20:52 +01:00
Rotimi Best
0a1e3dc368
fix: failing migration #513
2024-12-23 02:58:23 +01:00
Rotimi Best
b3ca8b00a6
chore: disable mark as complete if all exercises are not complete #513
2024-12-23 02:31:53 +01:00