* 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: setup dashboard analytics api
* chore: requested pr fixes
* fix: dash analytics server side type
* refactor: update Avatar component usage across the dashboard
- Replaced custom Avatar component with the new @cio/ui/base/avatar implementation for consistency.
- Enhanced avatar rendering with fallback options and improved accessibility.
- Cleaned up unused Avatar component files and related functions.
- Updated various components to utilize the new Avatar structure, ensuring a uniform appearance and behavior across the application.
* chore: remove console.log statements from analytics routes and API calls
- Eliminated console.log statements for orgId and siteName in the dash analytics router and DashStatApi class to clean up the code and improve performance.
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* feat: new components, deploy storybook
* refactor: simplify component field definitions and enhance button loading state
- Removed unnecessary type imports and simplified the FIELDS array definitions across multiple components in Storybook.
- Updated button component to use a loading state instead of isLoading, improving clarity and consistency in props.
- Adjusted button stories to reflect the new loading prop and enhanced the button's loading visual feedback.
- Minor CSS adjustments for better layout and styling consistency.
* chore: add field, card, password components
* feat: improve page component & update AuthUI path
* chore: update bits-ui to version 2.14.4 and all org related UI's
- Updated bits-ui dependency in pnpm-lock.yaml and package.json to version 2.14.4.
- Refactored imports for RoleBasedSecurity and UpgradeBanner components to use the new ui feature directory.
- Removed unused Course components and related files to clean up the codebase.
- Enhanced various components to improve consistency and maintainability.
* chore: move all setting buttons to the top and update auth ui styles
* chore: remove svelte-loading-spinners and replace with @cio/ui/base/spinner
- Removed all instances of svelte-loading-spinners from the project.
- Updated components to use the new Spinner from @cio/ui/base/spinner.
- Cleaned up pnpm-lock.yaml and package.json to reflect the removal of svelte-loading-spinners.
- Added new CSS animations for rocket launch effects in app.css.
- Enhanced email change flow with updated verification messages in translations.
* chore: remove supabase file upload from dashboard and move to r2
* chore: update organization API and UI components
- Added new API methods for organization plan operations and team management.
- Introduced middleware for API key authentication and organization admin checks.
- Refactored organization-related components to utilize the new API structure.
- Updated various UI components to improve consistency and maintainability.
- Enhanced error handling and validation for organization-related actions.
- Removed deprecated services and streamlined the codebase.
* 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.
* UI initialization
* feat: structure API
* feat: audience & people analytics
* feat: quick changes
* feat: add comments
* redesign course student page
* chore: make requests to db more efficient
* clean up analytics page for course
* feat: finish up audience analytics page
* chore: minor UI tweaks
* translate all
* replace inserts of log in events to update
* catch error if last_login isn't inserted
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* checkpoint
* checkpoint
* feat: Create free tools page
* responsiveness fix
* rename free-tools to tools
* add slug
* feat: Random name picker
* quick fix
* PR Fixes
* PR Fixes
* - adjustments
* update env example
* remove base url
* remove base url in .env.example
* fix type errors
* add og images
* add signup cta to /tools layout
* update cta
* add socials avatar
* add meta tags
* feat: tic tac toe (#307)
* Feat: tic tac toe
* PR Adjustments
* feat: Implement Timed Activity Tool (#316)
* chore: update verification email content
* chore: landing page improvements
* feat: grade exercise with AI (#296)
* working on the UI of the grading
* working on the grading function of the radio and checkboxes
* ai grading fully implemented with dummy functions for generating scores
* working on the openai response
* working on the openai response
* finished with the ai_grading
* finished with the ai_grading
* creating new migration file
* working on reviews
* updated the translations
* improvements
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* feat: selfhost tinymce
* fix: logo resolution error in manifest.json
* feat: move from gpt3.5 to gpt-4o
* feat: customize the LMS from dashboard (#304)
* Done with the customization of the LMS task
* generated custom_lms migration file
* updated the migration file
* copy improvements
* update wording
* made updates based on reviews,i hope i didnt miss anything
* updated the translations and migration files
* refactoring
* disabled improvements for apps
* more improvements
* more custom improvements
* pr refactoring
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* fix: CustomizeLMS not found
* fix: CustomizeLms wrong path
* setup
* docs: update short hero tagline
* debug: courses not showing on vercel
* more debugging
* i think this fixes it
* fix: phew, clean up debug cause it works
* fix: move RBS into coursecontainer on marks page
* chore: cleaner way to implement redirect if role permission denied
* docs: update tagline
* fix: delete /org/# route
* checkpoint
* add reusable header component
* fix: empty lesson title bug (#314)
* finished the lesson title bug
* made chnages based on review
* Update +page.svelte
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* feat: add sound cdn
* remove console.log
* feat: course types - self paced and live class (#309)
* working on the course type
* trying to mark it persist
* almost done here
* fixed sendig emtpy options bug
* created migration file
* created migration file
* made updates based on PR review
* merge
* update course type card
* add redirect logic with classroomio.com/new
* make new course modal only open/close with url
* feat: page active state (#315)
* finished the active link state
* updated the active link state based on review
* simplify code
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* add type to course card
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* general improvements to free tools
* fix timer and styling issues
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
Co-authored-by: Em_Dev <Chifez1@gmail.com>
* update tagline for tools page
* feat: Add Free Section to Landing Page (#332)
* feat: Add Free Section to Landing Page
* PR Fixes
* refactor
* PR Fixes
* restructure
* improve cursor UX
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* feat: Progress Report Tool (#329)
* checkpoint
* fix: corrections
* finalization
* improve ux of progress tool
* more styling improvements
* PR Fixes
* PR Fixes
* fix: mood bg on report
* fix: generate exercise with AI bug (#331)
* fix: enable lesson cascade delete (#335)
* styling improvements
* chore: hide course grading toggle in settings (#338)
* feat: reset select in community page (#339)
* Feat: Add Reset for comminity dropdown
* - add translation
* refactor
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* fix: prevent hypen at start or end of organzation or domain name (#340)
* fix: adding hypen to start or end of org or domain name
* fix: add org name validation to settings page
* chore: remove unnecessary variable use
* chore: remove error reset function
* Update OrgSettings.svelte
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* fix: full screen
* fix: pnpm version error & add top level .nvmrc (#343)
* update name of tool
* chore: add translations for validation messages (#345)
* chore: add validation texts to locale file
* feat: switch all validations from plain text to use i18n locale
* feat: switch review form validations from plain text to use locale file
* run translation script
* chore: add translations for validation messages (#345) (#347)
* chore: add translations for validation messages (#345)
* chore: add validation texts to locale file
* feat: switch all validations from plain text to use i18n locale
* feat: switch review form validations from plain text to use locale file
* run translation script
---------
Co-authored-by: Iniubong Obonguko <iniubongobonguko2018@gmail.com>
* PR Fixes
* Bug fixes on mobile
* Final bug fix
* code improvements
* PR Fixes
* Merge Fix
* PR Fixes
* fix: width
* code cleanup
* feat: Promodo Tool (tracks tim spent)
* feat: Pomodoro timer (without tracking feature)
* fix:
- change pause functionality to next
- correct spelling of pomodoro
* fix: pomodoro logo rename
* styling improvements
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
Co-authored-by: Em_Dev <Chifez1@gmail.com>
Co-authored-by: Iniubong Obonguko <iniubongobonguko2018+github@gmail.com>
Co-authored-by: Iniubong Obonguko <iniubongobonguko2018@gmail.com>
Co-authored-by: Aditya Deshlahre <132184385+adityadeshlahre@users.noreply.github.com>
* feat: Implement Bottom menu (#341)
* popup logic done
* popup UI first phase done
* finished the menupop up for both lms and admin
* finished the menupop up for both lms and admin
* done
* cleanup
* fixed popover position
* still working on the routing
* i think that is it for the day
* updated the menupopup currentorgdomain
* rename popup to bottomMenu
* refactoring
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* remove logout
* change tagline
* feat: Store todolist to localStorage (#375)
* feat: Save todo to localStorage
* remove fly animation to todos
* feat: Progress Report avatar update (#376)
* feat: Reorder Avatar list
* quick fix
* change avatar url
* more improvements
* quick background fix
* fix: white background
* body background fix
* update lock
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
Co-authored-by: Em_Dev <Chifez1@gmail.com>
Co-authored-by: Iniubong Obonguko <iniubongobonguko2018+github@gmail.com>
Co-authored-by: Iniubong Obonguko <iniubongobonguko2018@gmail.com>
Co-authored-by: Aditya Deshlahre <132184385+adityadeshlahre@users.noreply.github.com>
* working on the fetch explore course
* working on the showing the right course
* finished the explore courses page
* finished the explore courses page
* updated the getcourseurl
* updated the migration file
* text and spacing improvements
* update translations
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* move to the next question
* remove console
* minor changes
* updated the confetti timeout
* updated the button
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* working on the course type
* trying to mark it persist
* almost done here
* fixed sendig emtpy options bug
* created migration file
* created migration file
* made updates based on PR review
* merge
* update course type card
* add redirect logic with classroomio.com/new
* make new course modal only open/close with url
* feat: page active state (#315)
* finished the active link state
* updated the active link state based on review
* simplify code
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* add type to course card
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* Done with the customization of the LMS task
* generated custom_lms migration file
* updated the migration file
* copy improvements
* update wording
* made updates based on reviews,i hope i didnt miss anything
* updated the translations and migration files
* refactoring
* disabled improvements for apps
* more improvements
* more custom improvements
* pr refactoring
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* add cloud translation api package
* feat: Script that auto generates translations for other languages
* add comments
* fix: broken translation
* improve translation
* update locck file
* clean up
* all round trasnlations check
* checkpoint
* finish up
* move to dev dependencies
* fix vercel build error
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* working on the list view
* working on the list view navigation
* worked on the list view for the course page
* worked on the list view for the course page
* clean up
* rename store
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* feat: multitranslational support
* - completion of settings page
- completion of sidebar
* sidebar rerendering bug fix
* completion of the lesson navigation & materials page
* completion of the course navigation
* completion of requested languages
* - Implementation of Language Picker
- Rename Bug Fixes
* checkpoint save
* - addition of the language picker to the onboarding.
- addition of the language switcher for the lesson notes.
* merge completion
* initialization of the new branch
* add transition.svelte file
* lesson note bug fix
* feat: add translation migration
* completion of translation
* fix height issue of dropdown
* refactoring
* fix: improve code with LOCALE from db
* finally get it fully functional
* connect with AI
* backward compatibility for lesson note
* preserve old content, when generating AI content
* undo translations in upgrade modal
* fix duplicate key issue from codacy trigger
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* working on the classroomio badge
* still working on the classroomio badge
* updated the classroomio badge
* making some changes
* implemented the animation and some other updates
* chore: improve styling
* increase font weigth
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* feat: move plans into sharable json
* remove unused code
* update pnpm lock
* update plans.json
* implement early adopter pricing
* docs: update meta title and description
* Finished the UI for upgrading plans
* Updated the pricing plans
* Updated the cards ui
* use relative import
* improve styling of upgrade plan card
* styling improvements, lemonsqueezy setup
* trigger lemonsqueezy payment and add webhook
* update pnpm lock
* add logout route
* feat: complete billing functionality
* generate lock file
* make crypto false on browser
* feat: adding upgrade prompts to org
* chore: add upgrade icon to upload video
* feat: add upgrade prompt to certificate and settings
* feat: implement onboarding setup page (#229)
* working on the onboarding setup
* working on the onboarding page
* Almost done with the onboarding UI
* finished the UI of the onBoarding setup
* finished the UI of the onBoarding setup
* Implementing the functions to carryout the logic of updating the UI onmount if a user has carried out a certain step or not
* Implementing the functions to carryout the logic of updating the UI onmount if a user has carried out a certain step or not
* making some chnages
* finished the onBoarding task
* updated some logic
* Removed the uneeded svg from the static folder
* fixed isCoursePublished not returning a boolean
* improved the setup link protection
* chore: make menuItems reactive
* improve formatting
* format supabase queries
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* revamp setup
* improve the upgrade experience
* migration
* feat: add lemonsqueezy customer portal
---------
Co-authored-by: emmanuel <chifez1@gmail.com>
* worked on the email verification
* worked on the email verification
* fixed the emailing issue and the supabase updating issue
* chore: add timer to resend, add supabase.server, enforce unique email
* chore: remove nodemailer logger
* remove async
* remove disposable email verification
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* feat: classroomio-issue-143
* issue 143: remove bg-color from the add icon
* fix: hide the + icon for student
---------
Co-authored-by: Rotimi Best <best@classroomio.com>
* fix: move org slot media query to postcss
* fix: remove slot css
* fix: remove unused vars
* fix: a ton of community improvements
* chore: ci/cd supabase
* fix: Corrected "Stuffs" to "Stuff" on the landing page
* fix: Corrected "Stuffs" to "Stuff" on the landing page
* fix: Corrected Success Messages on the dashbaord
* 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