* feat: move community supabase request to api layer
* chore: pr review checkpoint
* chore: PR fixes
* feat: implement role-based authorization middleware and align the community features with the developer guide.
- Added role-based authorization middleware for organization and course membership checks, including `orgMemberMiddleware`, `orgTeamMemberMiddleware`, and `courseMemberMiddleware`.
- Introduced route-specific middleware for comment and question authorization, ensuring only authors or team members can modify content.
- Updated community routes to utilize the new middleware for enhanced security and access control.
- Refactored community services to streamline upvote functionality and improve error handling.
- Enhanced UI components for community interactions, including new comment and question pages, and improved state management for user actions.
- Updated documentation to reflect new middleware usage and best practices for authorization in the API layer.
* feat: enhance course and organization routes with middleware for improved access control
- Added `courseMemberMiddleware` to course download and clone routes to enforce membership checks.
- Updated lesson route to include `courseMemberMiddleware` for PDF downloads.
- Integrated `orgMemberMiddleware` into organization routes for team and audience access, ensuring only authorized members can retrieve data.
- Refactored lesson and organization routes for consistency and clarity in middleware usage.
* chore: streamline dashboard and API development scripts in package.json
- Consolidated dashboard and API development commands to include all relevant filters in a single line for improved clarity and ease of use.
- Removed redundant full command variants to simplify the script section.
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* chore: fix storybook build
* chore: implement theming
* community list not showing properly
* refactor: migrate Chip component to @cio/ui/custom/chip
- Updated imports for the Chip component across multiple files to use the new location in the @cio/ui package.
- Replaced the previous Chip implementation with a new version that utilizes a Badge for better styling and functionality.
- Adjusted related components to ensure consistent usage of the updated Chip component.
* fix: align course sidebar design to match organization design (#611)
* fix: align course sidebar design to match organization design
* feat: add hideSearch prop to AppHeader and update sidebar layout
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* refactor: replace PrimaryButton with Button component across multiple files
- Updated various components to use the new Button component from @cio/ui/base/button instead of the deprecated PrimaryButton.
- Ensured consistent button usage throughout the application for improved styling and functionality.
- Removed the PrimaryButton component and its associated constants from the codebase.
* refactor: standardize button and input usage across components
- Replaced instances of deprecated components such as TextField, TextArea, and IconButton with their updated counterparts (InputField, TextareaField, and updated IconButton).
- Ensured consistent event handling by changing `onClick` to `onclick` for better alignment with Svelte's event binding conventions.
- Removed unused components and streamlined imports to enhance code maintainability and readability.
* chore: themeing, course card, use $features
* refactor: centralize UI components and update modal implementations
- Refactored various components to centralize UI elements, improving discoverability and maintainability.
- Replaced deprecated modal components with the new Dialog component for consistent modal behavior across the application.
- Removed unused components and streamlined imports to enhance code clarity and reduce complexity.
* feat: add new documentation and refactor org and lms UI components
- Introduced new documentation files for Auth Flow, Breadcrumbs Refactoring, Page and Route Creation, and Route Page Setup to enhance developer onboarding and reference.
- Refactored various UI components, including the Course Sidebar and Lesson Modal, to improve layout and functionality.
- Removed deprecated components and streamlined imports for better maintainability.
- Updated translations across multiple languages to ensure consistency in user experience.
* refactor: update UI components and improve styling consistency
- Refactored various components to enhance styling consistency, including updates to button and text color classes.
- Removed deprecated components and streamlined imports for better maintainability.
- Replaced instances of PageBody with a more flexible Page component structure across multiple routes.
- Updated translations and UI elements to align with the new design system.
- Deleted unused components to reduce code complexity and improve clarity.
* update output.css
---------
Co-authored-by: Abdulmuizz Hamzat <103611443+canhamzacode@users.noreply.github.com>
* feat: Add .gitignore file and update package.json with pnpm version
feat: Enhance course queries with error handling and new course retrieval
feat: Implement exercise queries for creating and fetching exercises, questions, and options
feat: Create group queries for managing groups and group members
feat: Add lesson queries for creating lessons and fetching sections by course ID
feat: Update seed script to include seeding for users, profiles, accounts, organizations, groups, courses, lessons, exercises, questions, and options
* feat: Enhance course cloning functionality by refining course and lesson data handling
* chore: remove console.log
* feat: update role assignment in cloneCourse function and clean up unused types in database.ts
* feat: add README for @cio/db package and remove existingAccounts.json
* load session, load profile and organization, add create profile hook
* chore: cache session request
The trick was passing all the cookies to the backend. Previously I was only passing the better-auth.session_token and not better-auth.session_data. Read about the difference here https://www.better-auth.com/docs/concepts/cookies#custom-cookies
* feat: login, logout, onboarding, verify email, reset password.
* feat: complete change email and email verification
* feat: standardise how we make rpc calls and create org endpoints
* fix ui errors
* fix: handle potential undefined customerId and standardize avatar URL property
* refactor: standardize custom domain handling and update telegram chat ID references
* chore: add tailwind prefix to @cio/ui
this fixed the media query issues because @cio/ui classes were overriding this dashboard tailwind build
* chore: clean up org sidebar
* chore: persist mode state
* feat: implement order breadcrumbs
* chore: upgrade to better auth 1.4
* chore: address common auth flow bugs and setup app for others to setup locally.
* chore: use turbo for build
* fix docker compose file and remove backend
* chore: update .dockerignore to include additional files and directories for improved build management
* copy everything in both docke filed
* refactor: streamline Dockerfile to copy entire dashboard app and remove unnecessary node_modules references
* update api to use turbo to start
* run ls la for docker files
* update cmd commands
* update cmds to use node
* fix: add redis url to docker compose
* fix: reduce memory allocation for dashboard build in Dockerfile
* debug dashboard build
* update api docker file
* update dashboard
* add tsconfig
* chore: add echo to dockerfile
* fix: change echo to run
* chore: install pnpm before switching to non-root user in Dockerfile
* refactor: update start commands in package.json and Dockerfiles to use pnpm
* install turbo
* use turbo 1.10.16
* update turbo config
* fix: update CMD in Dockerfile to run the API directly using Node.js
* change
* add commands to turbo.json
* copy over turbo
* add workspace
* fix: update start commands in package.json to specify ports for dashboard and API
* publish docker images
* add dev branch
* update compose
* build only for amd64 platform
* refactor: update docker-compose to use pre-built images and remove build context
* coolify-dockertest
* point to latest
* chore: update docker-compose to use specific version tags for API and dashboard images
* remove envs for docker file
* 0.1.3
* use dynamic env
* 0.1.4
* add PUBLIC_IS_SELFHOSTED=true
* chore: update docker-compose to use version 0.1.5 for API and dashboard images
* use static for PUBLIC_IS_SELFHOSTED
* disable cache for tag
* use 0.1.7
* add PUBLIC_IS_SELFHOSTED=true
* comment out caching
* update docker-compose to use version 0.1.8 for API and dashboard images
* update api port
* use tag 0.1.9
* add cache
* use latest tag in compose file
- 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.
* feat: Initial logic for the pdf upload
* feat: uploa logic, translations and ui flow complete
* chore:console log cleanup
* feat: fixed upload issue and added cancel upload button
* feat: fixing the download document ish
* feat: All done and ready for use
* feat: updated the document viewing logic
* feat: some minor refactor
* feat: added migration file
* fix: dark mode, translations, restyling,
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* 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 <iniubongobonguko2018@gmail.com>
* feat: v1 templates
* update nvm
* working on the displaying the course content
* working on the displaying the course content
* displayed the content
* finished with the logic for rendering the content for all the courses and lessons
* post hog template UI is good to go
* classic and minimalistic template UI is good to go
* some refactoring
* some refactoring
* layout adjustments
* update tsconfig
* trying to get the filter to work well
* this is working now
* cleanup
* cleanup
* UI updates
* course page UI for posthog
* navbar and sidebar for course page in all templates complete
* all templates course page showing lesson content from md file with mdsvex
configured
* wokring on sections
* posthog lesson content done
* all templates fetches the lesson content from the section
* all templates properly typed
* scaffolding the new template
* finished the webflow-saas
* done with the webflow saas UI
* new calcom template
* new calcom template
* masonry layout for testitomonail section layout done
* calcom UI done
* UI all done
* cleanup
* trying to fix dark mode for the course page and home page
* done with this
* done with this
* working on tests
* migrated minimalistic template to svelte 5
* updated the syntax to svelte 5 for webflow
* migrated classic to svelte 5
* migrated posthog to svelte 5
* used svelte 5 syntax in calcom
* cli tool woks locally
* rename to course-sites
* use pnpm in root
* calcom refactoring
* remove unused files
* chore: biggest refactoring in my life
* add basic readme
* refactoring on course page
* restructure how courses are ordered
* proper state propagation
* add cf adapter
* fix pnpm i issue
* fix folder icon size
* use 18.17 version
* update npmrc
* add engine to packagejson
* pnpm install
* add engine to cio-com
* make it 18.x
* remove sequence
* move mdsvex to dependencies
* update lock
* mdsvex please work
* replace fs with import from vite
* add lock
* styling improvements
* fix styling
* sidebar style improvements
* fix: mobile concerns
* fix spacing of course header on desktop
* update header
* top nav fix
* feat: make cal template
* setup another template
* classic basic UI
* fixed the /courses fetching wrong page content
* fix breaking template cause of logo
* adding some updates
* improve styles theming
* finished updates from reviews
* updated the custom styling css
* clean up posthog template
* cli tool done, needs some cleaning though
* moved components to home
* improved the UI of the minimal template
* Add CLI tool and course app site
* prettier lint
* improve CLI
* ignore sveltekit folder
* publish course app
* fix tailwing theme + improve README
* finish up course-app site
* update README.md
---------
Co-authored-by: emmanuel <chifez1@gmail.com>
* working on the streaming progress
* connected video upload progress from frontend to server to bucket
* cleanup
* cleanup
* added the progress bar
* finished the supabase upload-progress using supabse realtime
* use only progress bar
* updating the helpertext
* Merge branch 'upload-progress' of https://github.com/rotimi-best/classroomio into upload-progress
* updated the supabase import
* Update LocalVideo.svelte
* update lock file
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* Update README.md
Made some updates to the readme to address some issues
* docs: Improvements to the setup guide of the README.md
* install supabase locally
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* Merge main into turbo-monrepo
* feat: rename apps
* feat: remove supbase videos and serve all from project
* feat: move supabase to root
* feat: update README
* docs: update link
CLASSROOMIO-T-227: 🔥🔥🔥🔥 Improvements
CLASSROOMIO-T-227:Worked on the Exercise Statistics
CLASSROOMIO-T-227:Worked on the Exercise Statistics
CLASSROOMIO-T-227:Worked on the Exercise Statistics
Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>
Co-authored-by: Ifeanyi Nwosu <ifeanyi@digdippa.com>
Co-authored-by: Rotimi Best <rotimiibitoyeemma@gmail.com>
Merge-request: CLASSROOMIO-MR-111
Merged-by: Best Admin <best@digdippa.com>
improve banner image
Merge branch 'main' of https://gitlab.com/thenextgreat/classroomio into CLASSROOMIO-T-177
Merge branch 'CLASSROOMIO-T-177' of https://gitlab.com/thenextgreat/classroomio into CLASSROOMIO-T-177
CLASSROOMIO-T-177: Moved API call to backend
general ux improvements
Merge branch 'CLASSROOMIO-T-177' of https://gitlab.com/thenextgreat/classroomio into CLASSROOMIO-T-177
CLASSROOMIO-T-177: Resolved Feedbacks
CLASSROOMIO-T-177: UI improvements
CLASSROOMIO-T-177: fix styling or image
CLASSROOMIO-T-177: Resolved Feedbacks
CLASSROOMIO-T-177: Landing Page Max Width
CLASSROOMIO-T-177: Refactor Upload Widget
Merge branch 'main' into CLASSROOMIO-T-177
CLASSROOMIO-T-177: Completion of Upload Widget
Merge branch 'main' into CLASSROOMIO-T-177
CLASSROOMIO-T-177: Widget Test
Co-authored-by: Rotimi Best <rotimiibitoyeemma@gmail.com>
Co-authored-by: Tunji Adeyemi <tunji@digdippa.com>
Merge-request: CLASSROOMIO-MR-86
Merged-by: Best Admin <best@digdippa.com>