Skip to content

EficodeDemoOrg/copilot-hackathon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 

Repository files navigation

πŸš€ Copilot Hackathon

Assignments for the GitHub Copilot hackathon

πŸ“š Exercise Repositories

Choose one of the following options:

πŸ“‹ Instructions

  • The objective is to implement an application according to the requirements, using Copilot's many features
  • Use the advanced Copilot features discussed earlier in the training as much as possible
  • Divide the work between the members or use mob programming
  • The results of each group are reviewed and discussed at the end of the hackathon. Make notes during the exercise about what worked well with Copilot, what didn't!

The main objective of the exercise is not to solve a programming problem, but to put Copilot features to the test. During the exercise, remember to utilize as much as possible the features discussed in Workshop 1:

  • Chat participants, Slash commands
  • Ask, Edits and Agent mode, depending on the situation
  • Custom instructions (for inspiration: awesome-copilot)
  • MCP servers (e.g. Playwright for browser testing, Context7 for up-to-date docs)
  • Generate unit and/or browser tests for the application using Copilot
  • Try out different models
    • General purpose programming tasks: GPT-4.1
    • Smple quick questions, fixes, code generations: o4-mini
    • Deep reasoning and debugging: GPT-5 mini, GPT-5, o3

❌ The Don'ts of Using Copilot

  • Do NOT vibe code, e.g. try to implement the app solely by relying on Copilot!
    • Key to using Copilot successfully is to retain the control and understand each line of code produced by the LLM
    • Giving complete control to Copilot will result in losing touch with the codebase
  • Do NOT feed the entire backlog file to Copilot and ask it to implement all the requirements
    • Prompts with too wide a scope will often result in endless agentic iteration cycles that eventually result in an application that doesn't work

βœ… The Do's of Using Copilot

  • Begin by brainstorming with Copilot

    • Use Copilot to better understand the exercise assignment and its requirements
    • What should the architecture be like? What are the options?
    • Which framework / tech stack could we use for this?
    • Which unit testing framework could I use for the project?
  • Use a project-specific custom instructions file

    • .github/copilot-instructions.md
    • Create one before doing anything else
    • Make a simple one initially, keep updating as your understanding of the project increases
    • Add a very high-level project description, preferred tools and frameworks and most important coding conventions to the initial version
  • Let Copilot help you in initializing the project

    • Ask Copilot wow to initialize the project using the framework of your choice. For consistent and standard results, it's better to use tools like create-react-app, Maven, etc. rather than let Copilot scaffold the project.
    • Ask Copilot to create a stub unit test case and test that it's runnable
  • Progress iteratively

    • Even when using the agent mode, progress in small steps
    • Implement e.g. a REST API stub or an empty page first
    • Add one REST API endpoint, UI component (e.g. a form) etc at a time
    • Go through the changed lines and see that they make sense
    • Ask Copilot to explain parts of the code that you don't understand
    • If the implementation offered by Copilot isn't satisfactory, explain why and ask it to iterate on the solution
    • Accept the solution when you're satisfied with it. Commit often.
    • Generate and update unit tests after each change
  • Try Test Driven Development with Copilot Agent Mode

    • If you're using VS Code, create a custom chat mode that
    • Describe a change / feature to Copilot
    • Ask it to implement unit tests only for the change
    • Ask Copilot to implement just enough code to make all the tests pass using TDD approach
    • Adjust your prompt if Copilot doesn't understand that it's supposed to run the tests automatically in order
  • Try using MCP servers

    • E.g. Playwright MCP if you're doing web development
    • PostgreSQL MCP if you have a local PostgreSQL database
    • Context7 if working with a very recent version of a framework/tool

About

Assignments for the GitHub Copilot hackathon

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published