Skip to content

swecc-uw/swecc-labs

Repository files navigation

SWECC Labs

SWECC Labs offers students practical software engineering experience through guided open-source contributions. We provide structured mentorship and real projects to help you build meaningful technical skills that will enhance your resume and prepare you for industry roles.

Why Join SWECC Labs?

Traditional personal projects can be challenging to start and may not provide the depth of experience employers look for. SWECC Labs addresses these challenges by offering:

  • Mentorship: Learn from engineers who can guide your technical growth
  • Guided Best Practices: Build strong technical foundations from day one, even as a beginner
  • Immediate Impact: Start making meaningful contributions quickly. Days not months
  • Public Portfolio: Showcase your work through public contributions that demonstrate your skills

Getting Started

  1. Join Us: Fill out our New Contributor Form to receive:

    • GitHub organization invitation
    • new-contributor Discord role
    • Welcome email with program details
  2. First Contribution: Get started by submitting a PR to add yourself as a contributor to the site.

    • Add yourself to the data/contributors.json file
    {
        "name": "Your Name",
        "github": "your-github-username",
        "photo": "path-to-your-photo"
    }
    • Add your photo to the assets/img folder and update the data/contributors.json file with the path to your photo
    • Add your name to the CONTRIBUTORS.txt file
    • Submit the PR and wait for it to be approved. As we approve PRs, we will also reach out to you on Discord.
  3. Find Your Project: Once approved as a contributor:

    • Browse open issues
    • Comment on ones that interest you
    • Get assigned and start coding
    • Suggest new issues if you have ideas
  4. Contribute:

    • Work on your assigned issues
    • Submit PRs for review
  5. Grow:

    • Receive feedback from code reviews
    • Improve your skills
    • Take on more challenging projects

What to Expect

From the Program

SWECC Labs is designed to be:

  • Flexible: Contribute at your own pace - no minimum time commitment
  • Supportive: Access mentorship and resources when you need them
  • Impactful: Work on meaningful projects that look great on your resume

From You

We look for contributors who are:

  • Self-Driven: Take initiative in learning and problem-solving while using available resources
  • Collaborative: Engage with mentors and fellow contributors through questions and discussion
  • Reliable: Maintain clear communication about your progress on assigned issues, and proactively seek help when needed

Current Projects

Course Scraper

A tool to scrape a certain website's API for personal usage. Users can gather course metadata and prerequisites to be used programmatically elsewhere.

Skills: Python, Automation, APIs, Web Scraping, Selenium

repo: https://github.com/swecc-uw/swecc-course-scraper

Email Scraper

Email data is readily available, but hard to work with. We are creating a framework for analyzing email data, with the goal in mind of automatically gathering recruiting statistics.

Skills: Python, Data Analysis/Visualization, Parsing, Natural Language Processing

repo: https://github.com/swecc-uw/swecc-email-scraper

SWECC Labs Landing Page

This very repo accepts contributions! Help make SWECC Labs better by contributing!

Skills: HTML/CSS/JS, technical writing/documentation, Abusing the GitHub API

repo: https://github.com/swecc-uw/swecc-email-scraper

SWECC Email Sender

A CLI email sending tool. Users can craft and send template emails in bulk!

Skills: Python, technical writing/documentation

repo: https://github.com/swecc-uw/swecc-email-sender

SWECC Chronos

A lightweight metric collection tool for any Docker cluster. This project aims to provide a simple and efficient way to gather and visualize metrics from Docker containers, helping developers monitor and optimize their applications.

Skills: Docker, FastAPI, technical writing/documentation

repo: https://github.com/swecc-uw/swecc-chronos

Suggest a project

Have a great idea for a piece of open source software? Let us know!

What makes an idea great?

  • Easy to operate fully open source
  • Self-contained, with minimal external dependencies
  • Does something new and useful

Some potential directions

  • Libraries
  • CLI utilities
  • Modules to extend existing frameworks/libraries
  • Implementing novel/niche data structures
  • Creating boilerplate to integrate with sources of data
  • Client-side web applications (localStorage/files only for persistence)
  • Building on top of existing SWECC ecosystem/available data

While we won't have the capacity to facilitate and maintain all projects, we are open to new ideas.

Suggestion form