Skip to content

Commit

Permalink
README Updated
Browse files Browse the repository at this point in the history
  • Loading branch information
debsouryadatta committed Aug 20, 2024
1 parent f2b4a05 commit 37e2566
Show file tree
Hide file tree
Showing 3 changed files with 81 additions and 24 deletions.
18 changes: 17 additions & 1 deletion .env.example
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
# Database
DATABASE_URL=
BASE_URL=


# Next AUth
AUTH_SECRET=
AUTH_GOOGLE_ID=
AUTH_GOOGLE_SECRET=
AUTH_URL=


# Groq API
Expand All @@ -24,4 +26,18 @@ LANGCHAIN_CALLBACKS_BACKGROUND=
# NEXT_PUBLIC_YOUTUBE_API_KEY=
NEXT_PUBLIC_YOUTUBE_API_KEY=
# UNSPLASH_API_KEY=
UNSPLASH_API_KEY=
UNSPLASH_API_KEY=



# Cloudinary
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=
CLOUDINARY_UPLOAD_PRESET=
CLOUDINARY_FOLDER=


# Stripe
STRIPE_SECRET_KEY=
STRIPE_WEBHOOK_SECRET=
66 changes: 53 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
CourseX - Unveil The Power of AI in Education. Generate courses with A.I.
<br />
<br />
<a href="https://coursex-bswq.onrender.com/">View Demo</a>
<a href="https://coursex.souryax.tech/">View Demo</a>
·
<a href="https://github.com/debsouryadatta/CourseX/issues/new?labels=bug&template=bug-report---.md">Report Bug</a>
·
Expand Down Expand Up @@ -58,12 +58,12 @@
<!-- ABOUT THE PROJECT -->
## About The Project

Course Generator is an innovative web application built with Next.js, leveraging the power of AI to create comprehensive course content. This full-stack project showcases modern web development practices, combining the robustness of Prisma and PostgreSQL for database management with the sleek designs of Shadcn UI and Aceternity UI kit. The app integrates advanced AI capabilities using LangChain.js and the GROQ API for course generation, while also incorporating external services like YouTube and Unsplash APIs to enrich the learning experience. With features ranging from user authentication to social media interactions and PDF exports, Course Generator demonstrates a sophisticated approach to educational technology, blending AI-driven content creation with user-centric design and functionality.
Course Generator is an innovative web application built with Next.js, leveraging the power of AI to create comprehensive course content. This full-stack project showcases modern web development practices, combining the robustness of Prisma and PostgreSQL for database management with the sleek designs of Shadcn UI and Aceternity UI kit. The app integrates advanced AI capabilities using LangChain.js and the GROQ API for course generation, while also incorporating external services like YouTube and Unsplash APIs to enrich the learning experience. With features ranging from user authentication to social media interactions, PDF exports, and payment integration, Course Generator demonstrates a sophisticated approach to educational technology, blending AI-driven content creation with user-centric design and functionality.

<p align="right">(<a href="#readme-top">back to top</a>)</p>

### CourseX Demo
Check out the live demo of CourseX [here](https://coursex-bswq.onrender.com/).
Check out the live demo of CourseX [here](https://coursex.souryax.tech/).


### Key Features
Expand All @@ -83,20 +83,33 @@ Check out the live demo of CourseX [here](https://coursex-bswq.onrender.com/).
- Bookmark/save course feature
- PDF export functionality for entire course content using html2pdf.js
- Database management with Prisma and PostgreSQL
- Search functionality for courses and profiles with debounce throttling
- Enhanced profile page with followers, following, and total courses information
- Edit profile option with image upload to Cloudinary
- Course visibility control with invite codes
- Concept check component with AI-generated MCQs
- Stripe payment gateway integration for premium features
- Containerization with Docker and CI/CD pipeline with GitHub Actions


### Built With

- Next.js
- Prisma
- PostgreSQL
- Shadcn UI
- Aceternity UI
- LangChain.js
- GROQ API
- YouTube API
- Unsplash API
- html2pdf.js
- Next.js (React framework)
- Prisma (ORM)
- PostgreSQL (Database)
- Shadcn UI (for design)
- Aceternity UI kit (for design)
- LangChain.js (for AI course generation)
- GROQ API (for AI course generation)
- YouTube API (for video content)
- Unsplash API (for course imagery)
- html2pdf.js (for PDF export)
- Zustand (for state management)
- Lodash (for debounce functionality)
- Cloudinary (for image upload)
- Stripe (for payment processing)
- Docker (for containerization)
- GitHub Actions (for CI/CD)

<p align="right">(<a href="#readme-top">back to top</a>)</p>

Expand Down Expand Up @@ -138,12 +151,14 @@ Create a `.env` file in the root directory of the project and add the following
```env
# Database
DATABASE_URL=
BASE_URL=
# Next AUth
AUTH_SECRET=
AUTH_GOOGLE_ID=
AUTH_GOOGLE_SECRET=
AUTH_URL=
# Groq API
Expand All @@ -163,6 +178,19 @@ LANGCHAIN_CALLBACKS_BACKGROUND=
NEXT_PUBLIC_YOUTUBE_API_KEY=
# UNSPLASH_API_KEY=
UNSPLASH_API_KEY=
# Cloudinary
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=
CLOUDINARY_UPLOAD_PRESET=
CLOUDINARY_FOLDER=
# Stripe
STRIPE_SECRET_KEY=
STRIPE_WEBHOOK_SECRET=
```
Replace the placeholder values with your actual respective account credentials.

Expand All @@ -174,6 +202,18 @@ Run the development server:
npm run dev
```

<br>

### Running the Project on Docker Container
Build the Docker image:
```bash
docker-compose build
```
Run the Docker container:
```bash
docker-compose up
```


<!-- CONTRIBUTING -->
## Contributing
Expand Down
21 changes: 11 additions & 10 deletions STEP_BY_STEP.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,16 +25,17 @@
16. Switching from Top Navigation to Sidebar Navigation using aceternity ui kit
17. Adding a Carousel of featured courses on the gallery page
18. Adding a search page for the search functionality on courses and profiles
19. pnpm i lodash for debounce throttling the search input

20. Changing schema with addition of Follow table, adding follow, unfollow button in the profile page
21. Showing the list of followers and following in the profile page(`pnpm i zustand`, for state management)
22. Implementing on cascade delete functionalities in every tables
23. Implementing course Visibility feature using invite codes for each course and also providing a visibility column in the course table
24. Adding the uploading course banner feature manually or giving an option to generate using unsplash api
25. Adding the concept check component which will include few mcqs based on the chapter contents, generated the mcqs using the langchain
26. Integrating the stripe payment gateway for premium generations, free tier -> 10 generations, premium -> unlimited generations for now
27. Creating a dockerfile, docker-compose file and github actions yml file for deploying it to VM and enable CI/CD
19. Edit profile option with image upoload to cloudinary
20. pnpm i lodash for debounce throttling the search input

21. Changing schema with addition of Follow table, adding follow, unfollow button in the profile page
22. Showing the list of followers and following in the profile page(`pnpm i zustand`, for state management)
23. Implementing on cascade delete functionalities in every tables
24. Implementing course Visibility feature using invite codes for each course and also providing a visibility column in the course table
25. Adding the uploading course banner feature manually or giving an option to generate using unsplash api
26. Adding the concept check component which will include few mcqs based on the chapter contents, generated the mcqs using the langchain
27. Integrating the stripe payment gateway for premium generations, free tier -> 10 generations, premium -> unlimited generations for now
28. Creating a dockerfile, docker-compose file and github actions yml file for deploying it to VM and enable CI/CD


- Finally fixed the nextauth error in production environment, just in .env add the AUTH_URL=https://coursex.souryax.tech
Expand Down

0 comments on commit 37e2566

Please sign in to comment.