Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# EditorConfig helps maintain consistent coding styles across different editors
# https://editorconfig.org

root = true

[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false
max_line_length = off

[*.{json,yml,yaml}]
indent_size = 2

[*.{js,jsx,ts,tsx,mjs}]
indent_size = 2

[*.mdx]
indent_size = 2
trim_trailing_whitespace = false
37 changes: 37 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
name: Bug Report
about: Report a bug or issue with the project
title: '[BUG] '
labels: bug
assignees: ''
---

## Bug Description
<!-- A clear and concise description of what the bug is -->

## Location
<!-- Where did you encounter this bug? -->
- File/Page:
- Challenge/Concept number:

## Expected Behavior
<!-- What you expected to happen -->

## Actual Behavior
<!-- What actually happened -->

## Steps to Reproduce
1. Go to '...'
2. Click on '...'
3. See error

## Screenshots
<!-- If applicable, add screenshots to help explain your problem -->

## Environment
- Browser:
- OS:
- Node version (if applicable):

## Additional Context
<!-- Add any other context about the problem here -->
35 changes: 35 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
name: Feature Request
about: Suggest a new challenge, concept, or improvement
title: '[FEATURE] '
labels: enhancement
assignees: ''
---

## Feature Type
<!-- Mark the relevant option with an "x" -->
- [ ] New challenge/question
- [ ] New concept explanation
- [ ] Documentation improvement
- [ ] Website enhancement
- [ ] Other

## Description
<!-- A clear and concise description of what you want to add or improve -->

## Proposed Solution
<!-- Describe how you would like to implement this feature -->

## Challenge/Concept Details (if applicable)
<!-- If proposing a new challenge or concept, provide details -->
- **Topic/Category**:
- **Difficulty Level**:
- **Brief Example**:

## Additional Context
<!-- Add any other context, screenshots, or examples about the feature request -->

## Are you willing to work on this?
<!-- Mark with an "x" -->
- [ ] Yes, I can work on this feature
- [ ] No, just suggesting the idea
32 changes: 32 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Pull Request

## Description
<!-- Provide a brief description of the changes in this PR -->

## Type of Change
<!-- Mark the relevant option with an "x" -->

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New challenge/question added
- [ ] Documentation update
- [ ] Code quality improvement
- [ ] Other (please describe):

## Checklist
<!-- Mark completed items with an "x" -->

- [ ] I have read the [Contributing Guidelines](../contributing.md)
- [ ] My code follows the project's code style and standards
- [ ] I have tested my changes locally
- [ ] The question/challenge is unambiguous and clear
- [ ] Code examples work as expected
- [ ] References are included (if applicable)
- [ ] No spelling or grammatical errors
- [ ] Changes are added to the appropriate section/file

## Related Issue
<!-- Link to the issue this PR addresses (if applicable) -->
Fixes #

## Additional Notes
<!-- Any additional information that reviewers should know -->
45 changes: 45 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: CI

on:
push:
branches: [main]
pull_request:
branches: [main]

jobs:
lint-and-build:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [20.x]

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}

- name: Install dependencies
working-directory: ./web
run: npm install

- name: Run ESLint
working-directory: ./web
run: npm run lint

- name: Build project
working-directory: ./web
run: npm run build

- name: Check for build artifacts
working-directory: ./web
run: |
if [ ! -d ".next" ]; then
echo "Build failed - .next directory not found"
exit 1
fi
echo "Build successful!"
28 changes: 28 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Dependencies
node_modules
package-lock.json

# Build outputs
.next
out
dist
build

# Cache
.cache
.turbo

# Logs
*.log

# OS
.DS_Store
Thumbs.db

# IDE
.vscode
.idea

# Other
coverage
.env*
13 changes: 13 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"semi": true,
"trailingComma": "es5",
"singleQuote": false,
"printWidth": 80,
"tabWidth": 2,
"useTabs": false,
"arrowParens": "always",
"endOfLine": "lf",
"bracketSpacing": true,
"jsxSingleQuote": false,
"proseWrap": "preserve"
}
9 changes: 9 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"recommendations": [
"esbenp.prettier-vscode",
"dbaeumer.vscode-eslint",
"bradlc.vscode-tailwindcss",
"unifiedjs.vscode-mdx",
"editorconfig.editorconfig"
]
}
26 changes: 26 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"files.eol": "\n",
"files.insertFinalNewline": true,
"files.trimTrailingWhitespace": true,
"[markdown]": {
"files.trimTrailingWhitespace": false
},
"[mdx]": {
"files.trimTrailingWhitespace": false,
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"typescript.tsdk": "web/node_modules/typescript/lib",
"search.exclude": {
"**/node_modules": true,
"**/package-lock.json": true,
"**/.next": true
},
"files.exclude": {
"**/.DS_Store": true
}
}
50 changes: 50 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Added
- GitHub Actions CI workflow for automated testing and building
- Pull request template for better PR management
- Issue templates for bugs and feature requests
- EditorConfig for consistent coding style across editors
- Prettier configuration for code formatting
- Security policy (SECURITY.md)
- Development guide (DEVELOPMENT.md)
- Enhanced README with setup instructions and project structure
- Improved contributing guidelines with detailed steps

### Changed
- Updated README.md with comprehensive documentation
- Enhanced contributing.md with better structure and guidelines

### Fixed
- N/A

### Removed
- N/A

---

## How to Update This Changelog

When contributing:
1. Add your changes under the `[Unreleased]` section
2. Choose the appropriate category: Added, Changed, Fixed, or Removed
3. Write a brief, clear description of your change
4. Maintainers will version the changes during releases

---

## Categories

- **Added** for new features
- **Changed** for changes in existing functionality
- **Deprecated** for soon-to-be removed features
- **Removed** for now removed features
- **Fixed** for any bug fixes
- **Security** in case of vulnerabilities
Loading