Codejourney is a Nextjs / Tailwind web page project.
- Next: React framework for building web applications with server-side rendering.
- Tailwindcss: CSS framework for rapid UI development.
- Typescript: Strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.
- Hygraph: Cloud GraphQL API.
- Shadcn: React components library.
- Resend: Module for Nextjs applications to allow easy email sending.
- Shadcn: React components library.
- Lucide Icons: Icons.
- Clerk: Module for Nextjs applications to manager users and middleware.
- Uptash: Serverless Data Platform (Redis).
- Zod: Schema validation with static type inference.
- Stripe: Payment gateway.
- Tanstack: Powerful asynchronous state management.
- Clone the repository.
- Create a copy of
.env.template
and rename it to.env
and change the environment variables (API Keys etc). - Create a copy of
.env.local.template
and rename it to.env.local
and change the environment variables (API key). - Install
npm install
dependencies. - Initialise the project with
npm run dev
.
├─ src
│ ├─ app
│ │ ├─ (auth)
│ │ │ ├─ layout.tsx
│ │ │ ├─ sign-in
│ │ │ │ └─ [[...sign-in]]
│ │ │ │ └─ page.tsx
│ │ │ └─ sign-up
│ │ │ └─ [[...sign-up]]
│ │ │ └─ page.tsx
│ │ ├─ (home)
│ │ │ ├─ (routes)
│ │ │ │ ├─ contacto
│ │ │ │ │ └─ page.tsx
│ │ │ │ ├─ course-preview
│ │ │ │ │ └─ [courseId]
│ │ │ │ │ ├─ _components
│ │ │ │ │ │ ├─ ButtonsSection.tsx
│ │ │ │ │ │ ├─ CourseDetails.tsx
│ │ │ │ │ │ ├─ EnrollmentSection.tsx
│ │ │ │ │ │ └─ VideoPlayer.tsx
│ │ │ │ │ ├─ not-found.tsx
│ │ │ │ │ └─ page.tsx
│ │ │ │ ├─ dashboard
│ │ │ │ │ ├─ _components
│ │ │ │ │ │ └─ CourseList.tsx
│ │ │ │ │ ├─ loading.tsx
│ │ │ │ │ └─ page.tsx
│ │ │ │ ├─ inscrito
│ │ │ │ │ └─ page.tsx
│ │ │ │ ├─ layout.tsx
│ │ │ │ ├─ newsletter
│ │ │ │ │ └─ page.tsx
│ │ │ │ ├─ plan-premium
│ │ │ │ │ └─ page.tsx
│ │ │ │ ├─ privacidad-generico
│ │ │ │ │ └─ page.tsx
│ │ │ │ └─ terminos-y-condiciones
│ │ │ │ └─ page.tsx
│ │ │ └─ _components
│ │ │ ├─ (Contact)
│ │ │ │ └─ ContactForm.tsx
│ │ │ ├─ (Dashboard-components)
│ │ │ │ └─ Categories.tsx
│ │ │ ├─ (Newsletter)
│ │ │ │ └─ EmailForm.tsx
│ │ │ ├─ (Side-BarNav)
│ │ │ │ ├─ Aside.tsx
│ │ │ │ ├─ FooterAside.tsx
│ │ │ │ ├─ MainEstructure.tsx
│ │ │ │ ├─ NavBar.tsx
│ │ │ │ └─ SearchBar.tsx
│ │ │ └─ index.ts
│ │ ├─ (pages)
│ │ │ ├─ codejourney-empresas
│ │ │ │ └─ page.tsx
│ │ │ ├─ layout.tsx
│ │ │ ├─ preguntas-y-respuestas
│ │ │ │ └─ page.tsx
│ │ │ └─ programas-estudio
│ │ │ ├─ _components
│ │ │ │ ├─ Categories.tsx
│ │ │ │ └─ Courses.tsx
│ │ │ └─ page.tsx
│ │ ├─ (watch-course)
│ │ │ ├─ (routes)
│ │ │ │ └─ view-course
│ │ │ │ └─ [courseId]
│ │ │ │ ├─ _components
│ │ │ │ │ ├─ ChapterNavigation.tsx
│ │ │ │ │ └─ VideoPlayer.tsx
│ │ │ │ └─ page.tsx
│ │ │ └─ layout.tsx
│ │ ├─ _microservices
│ │ │ └─ index.tsx
│ │ ├─ api
│ │ │ ├─ checkout
│ │ │ │ └─ route.ts
│ │ │ ├─ message
│ │ │ │ └─ route.ts
│ │ │ ├─ sendContact
│ │ │ │ └─ route.ts
│ │ │ └─ sendNewsletter
│ │ │ └─ route.ts
│ │ ├─ favicon.ico
│ │ ├─ globals.css
│ │ ├─ layout.tsx
│ │ ├─ not-found.tsx
│ │ └─ page.tsx
│ ├─ components
│ │ ├─ (section-landing-pages)
│ │ │ ├─ first-section
│ │ │ │ └─ FirstSection.tsx
│ │ │ └─ second-section
│ │ │ └─ SecondSection.tsx
│ │ ├─ Chat
│ │ │ ├─ Chat.tsx
│ │ │ ├─ ChatHeader.tsx
│ │ │ ├─ ChatInput.tsx
│ │ │ ├─ ChatMessages.tsx
│ │ │ ├─ MarkdownLite.tsx
│ │ │ └─ Providers.tsx
│ │ ├─ carousel.tsx
│ │ ├─ cursos.tsx
│ │ ├─ email-template.tsx
│ │ ├─ footer
│ │ │ └─ Footer.tsx
│ │ ├─ index.ts
│ │ ├─ integrantes.tsx
│ │ ├─ not-found
│ │ │ └─ PageNotFound.tsx
│ │ ├─ top-menu
│ │ │ ├─ TopMenu.tsx
│ │ │ ├─ logo.tsx
│ │ │ ├─ manage-account-button.tsx
│ │ │ ├─ navigation-bar.tsx
│ │ │ └─ righ-side-buttons.tsx
│ │ └─ ui
│ │ ├─ accordion.tsx
│ │ ├─ button.tsx
│ │ ├─ card.tsx
│ │ ├─ carousel.tsx
│ │ ├─ dropdown-menu.tsx
│ │ ├─ form.tsx
│ │ ├─ input.tsx
│ │ ├─ label.tsx
│ │ ├─ navigation-menu.tsx
│ │ ├─ select.tsx
│ │ ├─ sheet.tsx
│ │ ├─ tabs.tsx
│ │ ├─ textarea.tsx
│ │ ├─ toast.tsx
│ │ ├─ toaster.tsx
│ │ ├─ typewriter-effect.tsx
│ │ └─ use-toast.ts