Course Creator is a web-based application designed to empower educators and content creators to build interactive online courses easily. Built with Next.js and Tailwind CSS, this platform provides a user-friendly interface for creating, organizing, and managing course content through an innovative carousel-based editor.
- Intuitive Course Management: Create, edit, and organize courses with a simple interface
- Diverse Content Types: Support for various content tiles including:
- Text tiles
- Detailed description tiles
- Survey tiles
- Quiz tiles
- Form tiles
- Interactive Carousel Interface: Navigate between content tiles with a smooth, responsive carousel
- Rich Text Editing: Format text with bold, italic, alignment, and font size options
- Course Preview: Preview your course as students would see it
- Responsive Design: Works seamlessly across desktop, tablet, and mobile devices
- Node.js 18.x or later
- npm, yarn, pnpm, or bun
- Clone the repository:
git clone https://github.com/your-repo/course-creator.git cd course-creator - Install dependencies:
npm install
- Create a
.env.localfile in the root directory with the following variables:NEXT_PUBLIC_API_URL=your_api_url_here
- Start the development server:
npm run dev
- Open http://localhost:3000 with your browser to see the application.
/src/app: Next.js app router pages/src/components: Reusable UI components/src/store: State management using Zustand/src/types: TypeScript type definitions/src/lib: Utility functions and shared code/src/utils: Helper utilities
- CourseCarousel: Main interface for editing course content
- DetailsTile: Component for creating detailed content with title and description
- TextTile: Component for creating text-only content
- FormTile: Component for creating form-based content
- PreviewCarousel: Component for previewing course content
- Next.js - React framework
- Tailwind CSS - Utility-first CSS framework
- Zustand - State management
- Radix UI - Accessible UI components
- Framer Motion - Animation library
- Embla Carousel - Carousel component
- TinyMCE - Rich text editor
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLintnpm run lint:fix- Run ESLint with auto-fix
This project uses ESLint and Prettier for code formatting. Pre-commit hooks are set up with Husky to ensure code quality.
- Fork the repository
- Create your feature branch:
git checkout -b feature/amazing-feature
- Commit your changes:
git commit -m 'Add some amazing feature' - Push to the branch:
git push origin feature/amazing-feature
- Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Shadcn UI - UI component collection
- Lucide Icons - Icon library