Skip to content

Repository files navigation

Ascendia: Next-Gen Learning Platform

Under-Development, a modular, open-source LMS platform featuring dynamic course creation and deep progress tracking.

Ascendia/
├── .env.example
├── .eslintrc.json
├── .gitignore
├── .prettierrc
├── .vscode/
│   └── settings.json
├── LICENSE
├── README.md
├── bun.lock
├── commitlint.config.ts
├── components.json
├── next.config.mjs
├── package-lock.json
├── package.json
├── postcss.config.mjs
├── prisma/
│   ├── migrations/
│   │   ├── 20260820205711_section_completedby/
│   │   │   └── migration.sql
│   │   └── migration_lock.toml
│   └── schema.prisma
├── public/
│   ├── dashboard-snippet.png
│   ├── file-text.svg
│   ├── globe.svg
│   ├── logo.png
│   ├── next.svg
│   ├── stripe.png
│   ├── vercel.svg
│   └── window.svg
├── src/
│   ├── actions/
│   │   ├── auth.ts
│   │   ├── channels.ts
│   │   ├── courses.ts
│   │   ├── groups.ts
│   │   └── payments.ts
│   ├── app/
│   │   ├── (auth)/
│   │   │   ├── layout.tsx
│   │   │   ├── sign-in/
│   │   │   │   └── page.tsx
│   │   │   └── sign-up/
│   │   │       └── page.tsx
│   │   ├── (discover)/
│   │   │   ├── _components/
│   │   │   │   └── navbar/
│   │   │   │       ├── group-dropdown.tsx
│   │   │   │       └── index.tsx
│   │   │   ├── about/
│   │   │   │   ├── [groupId]/
│   │   │   │   │   └── page.tsx
│   │   │   │   └── _components/
│   │   │   │       ├── about.tsx
│   │   │   │       ├── gallery.tsx
│   │   │   │       └── join-button.tsx
│   │   │   ├── explore/
│   │   │   │   ├── [category]/
│   │   │   │   │   ├── loading.tsx
│   │   │   │   │   └── page.tsx
│   │   │   │   ├── _components/
│   │   │   │   │   ├── explore-content.tsx
│   │   │   │   │   ├── explore-slider.tsx
│   │   │   │   │   ├── group-card.tsx
│   │   │   │   │   ├── group-list.tsx
│   │   │   │   │   ├── paginated-groups.tsx
│   │   │   │   │   └── searched-groups.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── layout.tsx
│   │   │   └── loading.tsx
│   │   ├── (landing)/
│   │   │   ├── _components/
│   │   │   │   ├── call-to-action/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── dashboard-snippet/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── deep-features.tsx
│   │   │   │   ├── navbar/
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── menu.tsx
│   │   │   │   └── pricing/
│   │   │   │       └── index.tsx
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── affiliates/
│   │   │   └── [Id]/
│   │   │       ├── loading.tsx
│   │   │       └── page.tsx
│   │   ├── api/
│   │   │   └── stripe/
│   │   │       └── connect/
│   │   │           └── route.ts
│   │   ├── callback/
│   │   │   ├── complete/
│   │   │   │   ├── loading,.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── loading.tsx
│   │   │   ├── page.tsx
│   │   │   └── sign-in/
│   │   │       ├── loading,.tsx
│   │   │       └── page.tsx
│   │   ├── favicon.ico
│   │   ├── globals.css
│   │   ├── group/
│   │   │   ├── [groupid]/
│   │   │   │   ├── _components/
│   │   │   │   │   └── group-navbar/
│   │   │   │   │       └── index.tsx
│   │   │   │   ├── channel/
│   │   │   │   │   └── [channelid]/
│   │   │   │   │       ├── [postId]/
│   │   │   │   │       │   ├── _components/
│   │   │   │   │       │   │   ├── comments/
│   │   │   │   │       │   │   │   ├── index.tsx
│   │   │   │   │       │   │   │   └── user-comment.tsx
│   │   │   │   │       │   │   └── post-info/
│   │   │   │   │       │   │       └── index.tsx
│   │   │   │   │       │   ├── loading.tsx
│   │   │   │   │       │   └── page.tsx
│   │   │   │   │       ├── _components/
│   │   │   │   │       │   ├── create-post/
│   │   │   │   │       │   │   └── index.tsx
│   │   │   │   │       │   ├── empty-channel/
│   │   │   │   │       │   │   └── index.tsx
│   │   │   │   │       │   ├── paginates-posts/
│   │   │   │   │       │   │   └── index.tsx
│   │   │   │   │       │   └── post-feed/
│   │   │   │   │       │       ├── index.tsx
│   │   │   │   │       │       ├── interactions.tsx
│   │   │   │   │       │       ├── post-author.tsx
│   │   │   │   │       │       └── post-card.tsx
│   │   │   │   │       ├── loading.tsx
│   │   │   │   │       └── page.tsx
│   │   │   │   ├── courses/
│   │   │   │   │   ├── [courseId]/
│   │   │   │   │   │   ├── [sectionId]/
│   │   │   │   │   │   │   ├── _components/
│   │   │   │   │   │   │   │   └── section-navbar/
│   │   │   │   │   │   │   │       └── index.tsx
│   │   │   │   │   │   │   ├── layout.tsx
│   │   │   │   │   │   │   └── page.tsx
│   │   │   │   │   │   ├── layout.tsx
│   │   │   │   │   │   └── page.tsx
│   │   │   │   │   ├── _components/
│   │   │   │   │   │   ├── course-list/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── create-module/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── module-list/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   └── page.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   ├── loading.tsx
│   │   │   │   ├── messages/
│   │   │   │   │   ├── [chatid]/
│   │   │   │   │   │   └── page.tsx
│   │   │   │   │   ├── _components/
│   │   │   │   │   │   ├── chat-bubble/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── chat-menu/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── chat/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── layout.tsx
│   │   │   │   │   └── page.tsx
│   │   │   │   └── settings/
│   │   │   │       ├── affiliates/
│   │   │   │       │   └── page.tsx
│   │   │   │       ├── domains/
│   │   │   │       │   └── page.tsx
│   │   │   │       ├── integrations/
│   │   │   │       │   ├── _components/
│   │   │   │       │   │   ├── connect/
│   │   │   │       │   │   │   └── index.tsx
│   │   │   │       │   │   └── integration-trigger/
│   │   │   │       │   │       └── index.tsx
│   │   │   │       │   └── page.tsx
│   │   │   │       ├── page.tsx
│   │   │   │       └── subscriptions/
│   │   │   │           ├── _components/
│   │   │   │           │   ├── card/
│   │   │   │           │   │   └── index.tsx
│   │   │   │           │   └── subscriptions/
│   │   │   │           │       └── index.tsx
│   │   │   │           └── page.tsx
│   │   │   ├── _components/
│   │   │   │   ├── leaderboard/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── mobile-nav/
│   │   │   │   │   └── index.tsx
│   │   │   │   └── navbar/
│   │   │   │       └── index.tsx
│   │   │   └── create/
│   │   │       ├── layout.tsx
│   │   │       ├── loading.tsx
│   │   │       └── page.tsx
│   │   └── layout.tsx
│   ├── components/
│   │   ├── forms/
│   │   │   ├── course-content/
│   │   │   │   ├── index.tsx
│   │   │   │   └── schema.ts
│   │   │   ├── create-group/
│   │   │   │   ├── index.tsx
│   │   │   │   ├── payment-form.tsx
│   │   │   │   └── schema.ts
│   │   │   ├── domain/
│   │   │   │   ├── index.tsx
│   │   │   │   └── schema.ts
│   │   │   ├── group-settings/
│   │   │   │   ├── index.tsx
│   │   │   │   └── schema.ts
│   │   │   ├── huddles/
│   │   │   │   ├── index.tsx
│   │   │   │   └── schema.ts
│   │   │   ├── media-gallery/
│   │   │   │   ├── index.tsx
│   │   │   │   └── schema.ts
│   │   │   ├── sign-in/
│   │   │   │   ├── index.tsx
│   │   │   │   └── schema.ts
│   │   │   ├── sign-up/
│   │   │   │   ├── index.tsx
│   │   │   │   └── schema.ts
│   │   │   └── subscription/
│   │   │       ├── index.tsx
│   │   │       └── schema.ts
│   │   ├── global/
│   │   │   ├── accordion/
│   │   │   │   └── index.tsx
│   │   │   ├── backdrop-gradient/
│   │   │   │   └── index.tsx
│   │   │   ├── copy-button/
│   │   │   │   └── index.tsx
│   │   │   ├── create-course/
│   │   │   │   ├── index.tsx
│   │   │   │   └── schema.ts
│   │   │   ├── drop-down/
│   │   │   │   └── index.tsx
│   │   │   ├── form-generator/
│   │   │   │   └── index.tsx
│   │   │   ├── glass-card/
│   │   │   │   └── index.tsx
│   │   │   ├── glass-modal/
│   │   │   │   └── index.tsx
│   │   │   ├── glass-sheet/
│   │   │   │   └── index.tsx
│   │   │   ├── google-oauth-button/
│   │   │   │   └── index.tsx
│   │   │   ├── gradient-text/
│   │   │   │   └── index.tsx
│   │   │   ├── group-list-slider/
│   │   │   │   ├── index.tsx
│   │   │   │   └── list-item.tsx
│   │   │   ├── group-side-widget/
│   │   │   │   └── index.tsx
│   │   │   ├── html-parser/
│   │   │   │   └── index.tsx
│   │   │   ├── icon-renderer/
│   │   │   │   └── index.tsx
│   │   │   ├── infinite-scroll/
│   │   │   │   └── index.tsx
│   │   │   ├── join-group/
│   │   │   │   └── index.tsx
│   │   │   ├── loader/
│   │   │   │   └── index.tsx
│   │   │   ├── otp-input/
│   │   │   │   └── index.tsx
│   │   │   ├── post-comments/
│   │   │   │   ├── index.tsx
│   │   │   │   └── schema.ts
│   │   │   ├── post-content/
│   │   │   │   ├── index.tsx
│   │   │   │   └── schema.ts
│   │   │   ├── post-reply/
│   │   │   │   └── index.tsx
│   │   │   ├── rich-text-editor/
│   │   │   │   ├── color-selector.tsx
│   │   │   │   ├── extensions.ts
│   │   │   │   ├── image.ts
│   │   │   │   ├── index.tsx
│   │   │   │   ├── link-selector.tsx
│   │   │   │   ├── node-selector.tsx
│   │   │   │   ├── slash-command.tsx
│   │   │   │   ├── text-slector.tsx
│   │   │   │   └── video.ts
│   │   │   ├── search/
│   │   │   │   ├── index.tsx
│   │   │   │   └── no-result.tsx
│   │   │   ├── sidebar/
│   │   │   │   ├── icon-dropdown.tsx
│   │   │   │   ├── index.tsx
│   │   │   │   └── menu.tsx
│   │   │   ├── simple-modal/
│   │   │   │   └── index.tsx
│   │   │   ├── skeleton/
│   │   │   │   └── index.tsx
│   │   │   ├── slider/
│   │   │   │   └── index.tsx
│   │   │   ├── stripe/
│   │   │   │   └── element.tsx
│   │   │   └── user-widget/
│   │   │       ├── index.tsx
│   │   │       ├── notification.tsx
│   │   │       └── user.tsx
│   │   ├── theme/
│   │   │   └── index.tsx
│   │   └── ui/
│   │       ├── accordion.tsx
│   │       ├── alert-dialog.tsx
│   │       ├── alert.tsx
│   │       ├── aspect-ratio.tsx
│   │       ├── avatar.tsx
│   │       ├── badge.tsx
│   │       ├── breadcrumb.tsx
│   │       ├── button.tsx
│   │       ├── calendar.tsx
│   │       ├── card.tsx
│   │       ├── carousel.tsx
│   │       ├── chart.tsx
│   │       ├── checkbox.tsx
│   │       ├── collapsible.tsx
│   │       ├── command.tsx
│   │       ├── context-menu.tsx
│   │       ├── dialog.tsx
│   │       ├── drawer.tsx
│   │       ├── dropdown-menu.tsx
│   │       ├── form.tsx
│   │       ├── hover-card.tsx
│   │       ├── input-otp.tsx
│   │       ├── input.tsx
│   │       ├── label.tsx
│   │       ├── menubar.tsx
│   │       ├── navigation-menu.tsx
│   │       ├── pagination.tsx
│   │       ├── popover.tsx
│   │       ├── progress.tsx
│   │       ├── radio-group.tsx
│   │       ├── resizable.tsx
│   │       ├── scroll-area.tsx
│   │       ├── select.tsx
│   │       ├── separator.tsx
│   │       ├── sheet.tsx
│   │       ├── skeleton.tsx
│   │       ├── slider.tsx
│   │       ├── sonner.tsx
│   │       ├── switch.tsx
│   │       ├── table.tsx
│   │       ├── tabs.tsx
│   │       ├── textarea.tsx
│   │       ├── toast.tsx
│   │       ├── toaster.tsx
│   │       ├── toggle-group.tsx
│   │       ├── toggle.tsx
│   │       ├── tooltip.tsx
│   │       └── use-toast.ts
│   ├── constants/
│   │   ├── forms.ts
│   │   ├── icons.ts
│   │   ├── index.ts
│   │   ├── menu.tsx
│   │   ├── placeholder.tsx
│   │   └── slider.tsx
│   ├── hooks/
│   │   ├── authentication/
│   │   │   └── index.ts
│   │   ├── channels/
│   │   │   └── index.ts
│   │   ├── courses/
│   │   │   └── index.ts
│   │   ├── groups/
│   │   │   └── index.ts
│   │   ├── infinite-scroll/
│   │   │   └── index.ts
│   │   ├── navigation/
│   │   │   └── index.ts
│   │   └── payment/
│   │       └── index.ts
│   ├── icons/
│   │   ├── about.tsx
│   │   ├── affiliate-duotone-black.tsx
│   │   ├── badge-plus.tsx
│   │   ├── bell.tsx
│   │   ├── brief-case-duotone-black.tsx
│   │   ├── briefcase-duotone-white.tsx
│   │   ├── buisness.tsx
│   │   ├── carot-sort.tsx
│   │   ├── chat.tsx
│   │   ├── check-badge.tsx
│   │   ├── check.tsx
│   │   ├── comment.tsx
│   │   ├── compass.tsx
│   │   ├── courses.tsx
│   │   ├── credit-card.tsx
│   │   ├── dashboard.tsx
│   │   ├── document.tsx
│   │   ├── empty-circle.tsx
│   │   ├── empty.tsx
│   │   ├── envalope.tsx
│   │   ├── exclaimation-mark.tsx
│   │   ├── explore.tsx
│   │   ├── file-duotone-black.tsx
│   │   ├── file-duotone-white.tsx
│   │   ├── fitness.tsx
│   │   ├── globe-duotone-black.tsx
│   │   ├── google.tsx
│   │   ├── grid.tsx
│   │   ├── heart.tsx
│   │   ├── home-duo-tone-white.tsx
│   │   ├── home.tsx
│   │   ├── i-duotone-black.tsx
│   │   ├── index.tsx
│   │   ├── life-style.tsx
│   │   ├── like.tsx
│   │   ├── links.tsx
│   │   ├── logout.tsx
│   │   ├── mega-phone.tsx
│   │   ├── megaphone-duo-tone-black.tsx
│   │   ├── megaphone-duo-tone-white.tsx
│   │   ├── message.tsx
│   │   ├── music.tsx
│   │   ├── personal-development.tsx
│   │   ├── purple-check.tsx
│   │   ├── settings.tsx
│   │   ├── social-media.tsx
│   │   ├── tech.tsx
│   │   ├── unlike.tsx
│   │   ├── white-label.tsx
│   │   └── zap-duotone-black.tsx
│   ├── lib/
│   │   ├── prisma.ts
│   │   ├── uploadcare.ts
│   │   └── utils.ts
│   ├── middleware.ts
│   ├── react-query/
│   │   └── provider.tsx
│   └── redux/
│       ├── provider.tsx
│       ├── slices/
│       │   ├── chats-slices.tsx
│       │   ├── infinite-scroll-slice.ts
│       │   ├── online-member-slice.ts
│       │   └── search-slice.ts
│       └── store.ts
├── tailwind.config.ts
├── tsconfig.json
└── yarn.lock

About

Ascendia: Building the future of skill development. A modular, open-source LMS platform featuring dynamic course creation and deep progress tracking.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages