# Summer Of Code - Community Info
This document is intended to serve as a reference about Google Summer Of Code (GSOC) for the community, and especially for mentors. It will be expanded as needed.
## Should I Mentor?
Mentorship can be an incredibly rewarding experience, but it's not something to sign up for lightly. Mentors should ideally have a specific project in mind, within their area of experience, and be:
+ Active, friendly, in good standing with the community.
+ Able to meet and vet students between February and April.
+ Prepared to dedicate 2-4 hours a week to mentoring, from May through August.
+ Commited to prompt code-review for PRs relating to their project.
+ Willing to evaluate the student's work objectively and submit assessments to Google -- since mentor evaluations play a part in the student receiving their funds.
Google has a [guide on this topic](https://google.github.io/gsocguides/mentor/what-makes-a-good-mentor) which may also be helpful.
>[!Important]
> If you have a project in mind, add it to the [Project Proposals spreadsheet](https://docs.google.com/spreadsheets/d/1ehuIyy32z1CDBpdSaYLEUCT3J3EOiV7v5eRcNVGMEVQ/edit?gid=2073174432#gid=2073174432). The following section describes how to fill out each collumn. You should also add your details to the [Mentors spreadsheet](https://docs.google.com/spreadsheets/d/1ehuIyy32z1CDBpdSaYLEUCT3J3EOiV7v5eRcNVGMEVQ/edit?gid=895196178#gid=895196178).
>
> If you are interested in applying to mentor, but don't have a specific project yet, you can just add yourself to the [Mentors spreadsheet](https://docs.google.com/spreadsheets/d/1ehuIyy32z1CDBpdSaYLEUCT3J3EOiV7v5eRcNVGMEVQ/edit?gid=895196178#gid=895196178).
## How Do I Scope Out A Project?
To submit a project idea, you must provide the following:
+ **The Project Name:** Make it easy for outsiders to understand, rather than clever.
+ **The Engine Area:** Using the normal PR-triage areas is fine; this is mostly so that we can try to get a good spread.
+ **A Short Description:** 2-5 sentences, as specific as possible.
+ **Two Mentors:** The person who writes the proposal is Mentor A. You may leave Mentor B blank to allow other people to sign up as a mentor for that project.
+ **Project Kind:** One of:
+ **Moonshot:** Large, experimental, ambitious, effectively a research project.
+ **Greenfield:** New development, but with a clear scope and a well-understood path to completion.
+ **Refinement:** Improving the existing codebase through refactoring, fixes, or features.
+ **Upstreaming:** Integrating code from the bevy ecosystem into the core engine.
+ **An Estimated Duration:** This *must* be one of the following options:
+ Small: 90 hours, 8-12 weeks (usually 8)
+ Medium: 175 hours, 10-22 weeks (usually 12)
+ Large: 350 hours, 10-22 weeks (usually 12)
+ **Difficulty.** Easy, Medium, or Hard. Just do your best to guess this, considering the expected skillset of the students who will be accepted.
+ **Expected Challenges.** Rate the difficulty as Easy/Intermmediate/Hard. If intermediate or hard, explain why: High complexity, lots of stakeholders, etc. We may want to avoid giving students projects where the problems are mostly social (e.g., getting people to agree on a design) rather than technical.
+ **Skills Required/Preferred.** Make it clear what students *must* be experienced in (e.g., Rust) and what you would prefer they know (e.g., Physically-based Rendering Lore).
+ **Additional Details.** Bonus points if you can include a link to a HackMD with references, background materials, etc. Do not under any circumstances link to a GitHub issue.
Refer to [this guide from Google](https://google.github.io/gsocguides/mentor/making-your-ideas-page) for additional instructions.
>[!Important]
> If you submit a project proposal, also add your details to the [Mentors spreadsheet](https://docs.google.com/spreadsheets/d/1ehuIyy32z1CDBpdSaYLEUCT3J3EOiV7v5eRcNVGMEVQ/edit?gid=895196178#gid=895196178).