A platform for showcasing Bitcoin Lightning bootcamps across Africa, their participants, instructors, projects, and sponsors.
- Browse bootcamps by location and date
- View bootcamp participants, instructors, and projects
- Participants can add their profiles to bootcamps they attended
- Submit projects built during bootcamps
- GitHub-based contribution system using Pull Requests
- Node.js (v20 or newer)
- npm or yarn
- Git
git clone https://github.com/extheoisah/afr-btc-ln-bootcamp.git
cd afr-lightning-bootcamp
npm install
# or
yarn install
Create a .env.local
file in the project root and add:
# GitHub credentials for PR creation (optional, needed for profile/project submissions)
GITHUB_TOKEN=your_github_personal_access_token
REPO_OWNER=repo_owner_username
REPO_NAME=repo_name
If you don't add GitHub credentials, the profile/project submission features will not work.
npm run dev
# or
yarn dev
The application will be available at http://localhost:3000.
├── public/
│ ├── data/ # JSON data files for bootcamps, students, projects, etc.
│ ├── images/ # Static images
│ └── uploads/ # Uploaded images (profiles, projects)
├── src/
│ ├── app/ # Next.js app router pages
│ ├── components/ # UI components
│ ├── lib/ # Utility functions and services
│ │ ├── data.ts # Data fetching functions
│ │ ├── github.ts # GitHub API interactions
│ │ ├── profile-service.ts # Profile submission logic
│ │ └── project-service.ts # Project submission logic
│ └── types/ # TypeScript type definitions
This project uses Prettier for code formatting. To format your code:
# Format all files
npm run format
# Check formatting without changing files
npm run format:check
We use typos
for spell checking. To install:
# Install typos CLI (macOS/Linux)
brew install typos-cli
# Or with cargo
cargo install typos-cli
Then run:
# Check for spelling errors
typos
# Fix spelling errors automatically
typos --write-changes
This project uses GitHub Actions for continuous integration:
- Code Quality: Automatically checks code formatting with Prettier and linting with ESLint
- Spell Check: Validates spelling across the codebase using typos-cli
These checks run automatically on pull requests and pushes to the main branch.
The application uses JSON files in the public/data
directory:
bootcamps.json
- Information about bootcampsstudents.json
- Student/participant profilesinstructors.json
- Instructor profilesprojects.json
- Projects created during bootcampssponsors.json
- Bootcamp sponsors
The recommended way to add content is through the UI:
- To add a participant profile: Navigate to
/profile
- To add a project: Navigate to
/projects/submit
These will create Pull Requests that can be reviewed and merged.
If you have ideas for improving this project or have found issues, we welcome your contributions:
-
Reporting Issues:
- Open an issue on GitHub with a clear description
- Include steps to reproduce the bug
- Add screenshots if applicable
- Mention your environment (browser, OS, etc.)
-
Proposing Features:
- Open an issue with the tag "enhancement"
- Describe the feature and its benefits
- Include mockups or examples if possible
-
Contributing Code:
- Fork the repository
- Create a new branch (
git checkout -b feature/your-feature-name
) - Make your changes
- Run tests and ensure they pass
- Submit a pull request with a clear description of changes
- Link related issues in your PR description
We follow a simple development workflow:
- Issues are triaged and labeled
- PRs are reviewed by maintainers
- Approved changes are merged to main
Please follow the existing code style and structure when making contributions.