Building the future of technology through open source collaboration
Join our global community of developers, designers, and innovators contributing to cutting-edge projects, learning from peers, and shaping the future of tech education.
Follow these steps to start contributing to TumiCore projects
Fork the repository on GitHub and clone it to your local machine:
git clone https://github.com/your-username/repository-name.git
Install required packages and dependencies:
npm install # or yarn install
Ensure all tests pass before making changes:
npm test # or yarn test
Create a new branch for your feature or fix:
git checkout -b feature/your-feature-name
Implement your changes following our coding standards and guidelines.
Push your changes and create a pull request using our template.
Create a .env file in your project root with the following variables:
# Database Configuration
DATABASE_URL=your_database_connection_string
DB_HOST=localhost
DB_PORT=5432
DB_NAME=tumicodes_dev
DB_USER=postgres
DB_PASSWORD=your_password
# Firebase Configuration (for Firebase projects)
FIREBASE_API_KEY=your_firebase_api_key
FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
FIREBASE_PROJECT_ID=your_project_id
FIREBASE_STORAGE_BUCKET=your_project.appspot.com
FIREBASE_MESSAGING_SENDER_ID=your_sender_id
FIREBASE_APP_ID=your_app_id
# Next.js Public Variables
NEXT_PUBLIC_API_URL=http://localhost:3000/api
NEXT_PUBLIC_APP_NAME=TumiCodes
NEXT_PUBLIC_GA_TRACKING_ID=your_ga_id
# Server Configuration
PORT=3000
NODE_ENV=development
JWT_SECRET=your_jwt_secret_key
API_KEY=your_api_key_for_external_services
# Email Configuration (for application processing)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your_email@gmail.com
SMTP_PASS=your_app_specific_password
ADMIN_EMAIL=admin@tumicodes.example
# Upload Configuration
MAX_FILE_SIZE=5242880 # 5MB
ALLOWED_FILE_TYPES=image/jpeg,image/png,application/pdf
.env file to version control.env to your .gitignore file.env.development, .env.productionnpm install
# or
yarn install
npm run dev
# or
yarn dev
Server runs on http://localhost:3000 by default
npm run build
# or
yarn build
npm test
# or
yarn test
Join our team and help build the future of tech education
Build responsive, accessible user interfaces for our education platform and tools.
Design and implement scalable APIs and services for our platform.
Develop AI/ML models and features for Luna AI and educational tools.
Build and maintain our cloud infrastructure and CI/CD pipelines.
Engage and grow our global community of developers and learners.
Submit your application to become part of our developer community
Recognizing outstanding contributions from our community members
Senior Frontend Developer
Led the Luna AI interface redesign and contributed to 10+ core features. Mentored 5 new contributors.
Machine Learning Engineer
Implemented advanced NLP features for Luna AI and optimized model performance by 40%.
DevOps Engineer
Built our CI/CD pipeline and reduced deployment time from 15 to 3 minutes.
Community Manager
Grew our community by 300% and organized 12 successful hackathons.
Connect with developers worldwide across our platforms
Start by looking for issues tagged with good-first-issue or beginner-friendly. Read our contribution guidelines, set up your development environment, and don't hesitate to ask questions in our community channels. We recommend starting with documentation improvements or small bug fixes.
All our repositories use standardized labels. Key labels include:
While most contributions are volunteer-based, we do offer:
Exceptional contributors may be invited to join our core team in paid positions.
Admin access is granted based on consistent quality contributions, trust, and demonstrated responsibility. Typically, after 6+ months of active contribution with multiple significant PRs merged, you can request maintainer status. This comes with additional responsibilities for code review and project maintenance.
We're a globally distributed team spanning multiple timezones (UTC-8 to UTC+5:30). Core collaboration hours are typically 9 AM - 12 PM UTC to accommodate most regions. All meetings are scheduled with timezone differences in mind and recordings are provided for those who can't attend live.
We value all contributions through: