Skip to content

Latest commit

 

History

History
487 lines (338 loc) · 8.2 KB

File metadata and controls

487 lines (338 loc) · 8.2 KB

Contributing to DevEvent Tracker 🚀

Thank you for your interest in contributing to DevEvent Tracker!

DevEvent Tracker is a community-driven platform that helps developers discover and track hackathons, conferences, workshops, meetups, open-source programs, and other opportunities they shouldn't miss.

Whether you're fixing bugs, improving the UI, adding features, enhancing accessibility, or improving documentation, your contributions are highly appreciated.


Table of Contents


Code of Conduct

By participating in this project, you agree to:

  • Be respectful and inclusive.
  • Welcome contributors of all experience levels.
  • Provide constructive feedback.
  • Collaborate professionally and positively.

Getting Started

1. Fork the Repository

Click the Fork button on GitHub.

2. Clone Your Fork

git clone https://github.com/YOUR_USERNAME/DevEvent_Tracker.git
cd DevEvent_Tracker

3. Add Upstream Remote

git remote add upstream https://github.com/niharika-mente/DevEvent_Tracker.git

Verify remotes:

git remote -v

Expected output:

origin    https://github.com/YOUR_USERNAME/DevEvent_Tracker.git
upstream  https://github.com/niharika-mente/DevEvent_Tracker.git

4. Keep Your Fork Updated

Before starting new work:

git fetch upstream
git checkout main
git merge upstream/main

Development Setup

Prerequisites

Tool Version
Node.js 18+
npm Latest
Git Latest

Install Dependencies

npm install

Run Development Server

npm run dev

Alternatively:

yarn dev

or

pnpm dev

or

bun dev

Open:

http://localhost:3000

The page automatically reloads whenever you make changes.


Project Structure

Typical Next.js App Router structure:

DevEvent_Tracker/
│
├── app/
│   ├── page.tsx
│   ├── layout.tsx
│   └── ...
│
├── public/
│
├── components/
│
├── styles/
│
├── package.json
├── tsconfig.json
├── next.config.ts
└── README.md

Structure may evolve as the project grows.


Contribution Areas

We welcome contributions in:

Frontend

  • UI/UX improvements
  • Responsive design
  • Accessibility enhancements
  • Component optimization
  • Dark mode support

Event Features

  • Event filtering
  • Event categorization
  • Search improvements
  • Event bookmarking
  • Calendar integrations

Performance

  • Next.js optimization
  • Lazy loading
  • Image optimization
  • SEO improvements

Documentation

  • README improvements
  • Setup guides
  • Contribution guides
  • Code documentation

Branch Naming Conventions

Never commit directly to main.

Create a dedicated branch:

git checkout -b feature/your-feature-name

Examples:

feature/event-search

feature/calendar-integration

feature/dark-mode

bugfix/mobile-layout

bugfix/navbar-overflow

docs/update-readme

style/homepage-redesign

refactor/event-card-component

Coding Standards

TypeScript

  • Use TypeScript whenever possible.
  • Prefer explicit types.
  • Avoid unnecessary use of any.

React & Next.js

  • Use functional components.
  • Keep components reusable.
  • Follow Next.js App Router conventions.
  • Avoid duplicate logic.

Styling

  • Maintain consistent spacing and layout.
  • Ensure responsiveness across devices.
  • Keep UI clean and accessible.

Commit Message Guidelines

This project enforces Conventional Commits via commitlint + Husky. Invalid commit messages are rejected automatically.

Format

type(scope): short description

[optional body]

[optional footer]

Allowed Types

Type Use for
feat New feature
fix Bug fix
docs Documentation only
style Formatting, whitespace
refactor Code change, no feature/fix
perf Performance improvement
test Adding or fixing tests
build Build system, dependencies
ci CI/CD config changes
chore Maintenance tasks
revert Revert a previous commit

Rules

  • Description must be lowercase
  • Description must be 72 characters or less
  • No period at the end
  • Prefer imperative mood: use "add" rather than "added" or "adds" (not enforced by commitlint)
  • Scope must be kebab-case if provided

Good Commits

feat(events): add category filtering
fix(navbar): resolve mobile menu overflow on small screens
docs(readme): improve setup instructions
refactor(cards): simplify event card rendering logic
feat(auth)!: replace session tokens with JWT

BREAKING CHANGE: clients must update Authorization header format.
fix(booking): prevent duplicate submissions

Debounce was missing on the submit handler, causing multiple
API calls on rapid clicks.

Fixes #102

Bad Commits

# No type prefix
updated navbar
# Vague description
fix: fixed it
# Wrong tense (use imperative mood)
feat: added dark mode
# Description starts with uppercase
fix: Resolve login bug
# Description too long (over 72 chars)
feat: add a new feature that allows users to export their data in multiple formats including CSV and JSON
# Invalid type
update(ui): change button color

Breaking Changes

Use ! after type/scope, and add a BREAKING CHANGE footer:

feat(api)!: change event response format

BREAKING CHANGE: Response now includes a nested `meta` object.
Update all clients reading the flat structure.

Pull Request Process

Before Submitting

Ensure:

  • Project builds successfully
  • No TypeScript errors
  • No linting issues
  • UI works on desktop and mobile
  • Documentation updated if needed
  • Changes are tested locally

Push Your Changes

git push origin your-branch-name

Open a Pull Request

Open a Pull Request against the main branch.

Include:

  • What changed
  • Why it changed
  • Screenshots (for UI updates)
  • Related issue number

Example:

feat(events): add advanced search filters

Fixes #25

Pull Request Checklist

Before submitting:

  • Code follows project standards
  • No console errors
  • Responsive design verified
  • No unused dependencies added
  • Documentation updated
  • Related issue linked

Reporting Issues

When reporting bugs, please include:

  • Clear title
  • Steps to reproduce
  • Expected behavior
  • Actual behavior
  • Browser information
  • Screenshots (if applicable)
  • Console errors (if available)

Feature Requests

Please include:

  • Problem statement
  • Proposed solution
  • Benefits to users
  • Alternative approaches considered

Good First Contributions

New contributors can start with:

  • Documentation improvements
  • UI polish
  • Accessibility enhancements
  • Responsive design fixes
  • Bug fixes
  • Error handling improvements
  • Event card improvements
  • Navigation enhancements

Need Help?

If you have questions:

  • Check existing issues first.
  • Read the project documentation.
  • Open a discussion or issue.
  • Ask maintainers for clarification before large changes.

Maintainer

Niharika Mente

Project Vision:

  • Helping developers discover opportunities
  • Centralizing important developer events
  • Improving accessibility to hackathons and programs
  • Building a useful resource for the developer community

Thank you for contributing to DevEvent Tracker! 🎉

Every contribution helps developers discover opportunities, learn new skills, and connect with the broader tech community.

Happy Coding! 🚀