A platform for learning engineering concepts in Kannada through YouTube playlists from Engineering in Kannada.
- Adding a New Course
- Adding a Blog Post
- Updating Existing Content
- Contribution Guidelines
- Local Development
- Notes for Contributors
- Features
- Technologies Used
- Add course details to
src/data/courses.json
:
{
"id": "course-id",
"title": "Course Title",
"description": "Course description",
"thumbnail": "YouTube thumbnail URL",
"difficulty": "Beginner" | "Intermediate" | "Advanced"
}
- Create a new video file at
src/data/videos/course-id.json
:
{
"courseId": "course-id",
"videos": [
{
"id": "course-id-1",
"title": "Video Title",
"type": "Theory" | "Practice" | "Project",
"youtubeUrl": "YouTube video URL",
"notesUrl": "Optional notes URL",
"codingQuestionUrl": "Optional practice URL"
}
]
}
- Create a new directory in
src/blogs/your-blog-slug/
with:
- content.md # Your blog post content in markdown
- metadata.json # Blog post metadata
- Add metadata in
metadata.json
:
{
"title": "Your Blog Title",
"date": "YYYY-MM-DD",
"author": "Your Name",
"authorUrl": "Your professional profile URL (e.g., LinkedIn, GitHub, Twitter)",
"description": "A brief description of your blog post that will be shown in the blog cards.",
"tags": ["tag1", "tag2"]
}
- Write your blog content in
content.md
using markdown format.
-
To update course details:
- Edit
src/data/courses.json
- Update the relevant course object
- Edit
-
To update videos:
- Edit the corresponding
src/data/videos/course-id.json
file - Maintain the same structure and IDs for existing videos
- Add new videos at the end of the array
- Edit the corresponding
-
Course Structure:
- Keep course IDs lowercase with hyphens (e.g.,
python-basics
) - Use descriptive titles in both English and Kannada
- Provide clear difficulty levels
- Keep course IDs lowercase with hyphens (e.g.,
-
Video Organization:
- Number videos sequentially (1, 2, 3...)
- Include all available resources (notes, practice questions)
- Use consistent video types (Theory/Practice/Project)
-
Quality Checks:
- Verify all YouTube URLs are working
- Ensure thumbnails are high quality
- Check for proper translations in titles/descriptions
-
Pull Request Process:
- Create a new branch for your changes
- Update both course and video files
- Test locally before submitting
- Provide clear description of changes
- Node.js (v16 or higher)
- npm or yarn
- Git
- GitHub Personal Access Token (for contributor leaderboard)
-
Create a GitHub Personal Access Token:
- Go to GitHub Settings > Developer settings > Personal access tokens
- Click "Generate new token (classic)"
- Give it a descriptive name (e.g., "Engineering in Kannada Local Dev")
- Select the following scopes:
repo:status
public_repo
- Click "Generate token"
- Copy the token immediately (you won't be able to see it again)
-
Create Environment Variables:
- Create a
.env
file in the project root - Add your GitHub token:
VITE_GITHUB_TOKEN=your_github_token_here
- Replace
your_github_token_here
with the token you copied
- Create a
# Clone the repository
git clone https://github.com/chandansgowda/engineering-in-kannada.git
# Navigate to project directory
cd engineering-in-kannada
# Install dependencies
npm install
# Create environment file
cp .env.example .env
# Edit .env and add your GitHub token
# Start development server
npm run dev
# Build for production
npm run build
- All content should be in both English and Kannada where possible
- Maintain consistent formatting across all JSON files
- Keep video descriptions concise and informative
- Update the README if you add new features or change the structure
- Browse available courses
- Track video progress
- Bookmark favorite videos
- View course materials and coding exercises
- Read technical blogs and articles
- Responsive design for all devices
- Contributor leaderboard
- React
- TypeScript
- Vite
- Tailwind CSS
- React Router
- Zustand (State Management)