Skip to content

Learning Platform for students to learn coding. Built using NextTs@v14 app router | Prisma | ClerkAuth | Zod | useSWR | Open.ai.

Notifications You must be signed in to change notification settings

codedevbrad/learningPlatform

Repository files navigation

The Coding Bootcamp

Hundred Points
The Coding Bootcamp is a Learning Platform built for my students who I tutor. The platform provides the student with the ability to message and book sessions with the tutor whilst being set quizzes, tasks, mini challenges, explanations, and videos derived through concepts and challenges tagged by a language and type.


Follow my journey in notion

Table of Contents


Project Features

Fire The Bootcamp

A full-featured coding bootcamp platform, designed for ease of use, with tasks, challenges, and learning materials tailored for students.

Artist Medium Skin Tone Tutor Area for Management of Students and Bootcamp Content

Tutors can manage students, create new course content, assign challenges, and track progress through the platform.


Calendar Student Learning area

complete concept pages and write notes within the pages detailing any learning. View all of the work you've done in your student area.

Calendar Tutor Sessions and Messaging

Integrated scheduling and messaging system for booking sessions and communicating directly with students.



In Depth

Bubbles Content Blocks

Video and image

explanation

Quiz

Task and challenges


Robot A.I Integration

Currently, OpenAI is used for generating concept blocks in the creation phase.


Setup

environment Setup

.ENV Variables

Variable Description
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY Public key for the Clerk authentication service.
CLERK_SECRET_KEY Secret key for the Clerk authentication service.
DATABASE_URL URL for the database connection.
BASE_URL Base URL for the application.
OPENAI_CREDS Credentials for the OpenAI service.
CLOUDINARY_API_SECRET Cloudinary API secret.
CLOUDINARY_API_KEY Cloudinary API key.
CLOUDINARY_CLOUD_NAME Cloudinary cloud name.
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME Public cloud name for Cloudinary.
NEXT_PUBLIC_CLOUDINARY_PRESET_NAME Cloudinary preset name.

.development.env

Variable Description
DATABASE_URL URL for the dev database connection.

.production.env

Variable Description
DATABASE_URL URL for the prod database connection.


Admin access

you need to run

npm run setup:create-admin <userid> "<name>"

In order to create an admin role for a user so they can access the admin and start interacting with Students or working on creating the platform content.

the userid should be gathered from clerk

gif-clerk


Services

Clerk Authentication

Clerk.com is an authentication and user management service that simplifies the process of adding user authentication and management to your web applications. Steps involved:

  1. Head to https://dashboard.clerk.com/
  2. Add a new application and fill in name and login providers.
  3. Select Next.js from the quickstart and copy the API keys to the .env file.

OpenAI Integration

ChatGPT, the sibling model to InstructGPT, is a form of generative AI — a tool that lets users enter prompts to receive humanlike images and text. We use this tool to generate social media post ideas. Steps involved to set up:

  1. Head to https://openai.com/ and sign up.
  2. Navigate to https://platform.openai.com/account/api-keys and generate a new secret key.
  3. Paste the key into the .env file with the appropriate key name.

cloudinary

Cloudinary is used to store the project assets and block images.

  1. navigate to ...
  2. get the secret keys and paste into.

Running the App

Follow the steps to set up and run the application.

working with the project.

Linking Commits to Issues:

When working on an issue, reference it directly in the commit messages. Use keywords like

  • Fixes #issue_number,
  • Closes #issue_number,
  • Resolves #issue_number. This automatically closes the issue when the commit is merged into the main branch. For example: sql.
You can also use References #issue_number if you’re working on the issue but aren’t resolving it yet. This links the commit to the issue without closing it.
Branch Naming:

Use descriptive branch names that include the issue number, like feature/12-add-login-form or bug/15-fix-loading-state. This keeps the branch history organized and helps you track progress by feature or bug.
Pull Requests (PRs):

When you create a pull request (PR), 

mention the issue in the description. GitHub will automatically link the PR to the issue.
Using Closes #issue_number in the PR description will also close the issue upon merge. 
This approach is often better than closing from a single commit, as it tracks all the work involved.
Track Progress with Project Boards (Optional):

For a more visual overview, use GitHub Projects or the Kanban board built into the repository. You can create a card for each issue and move it across columns like "To Do," "In Progress," and "Done" to track the issue's status.
Regular Updates in Issues:

Drop comments in the issue as you make progress, especially for larger tasks. This provides a log of decisions and progress for yourself and collaborators.
Milestones and Labels:


Use labels to categorize issues (e.g., bug, enhancement, documentation) and milestones for larger goals. Milestones can help you track overall progress for a set of issues, especially if you’re working toward a release.

..

About

Learning Platform for students to learn coding. Built using NextTs@v14 app router | Prisma | ClerkAuth | Zod | useSWR | Open.ai.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published