Skip to content

Commit

Permalink
Merge branch 'main' into to-uppercase
Browse files Browse the repository at this point in the history
  • Loading branch information
NimahMasuud authored Jan 12, 2025
2 parents 765f6a5 + b53f573 commit 0841769
Show file tree
Hide file tree
Showing 23 changed files with 1,281 additions and 66 deletions.
6 changes: 4 additions & 2 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,10 @@ about: A template PR for code review with a checklist

- [ ] The function's name describes it's behavior
- [ ] The function's name matches the file name
- _It's ok to have extra helper functions if necessary, like with mergesort_
- [ ] The function has correct type annotations
- [ ] The function is not called in the function file
- [ ] The function is not called at the top level of the function file
- _Recursive solutions **can** call the function from **inside** the function body_

## Strategy

Expand All @@ -67,7 +69,7 @@ about: A template PR for code review with a checklist

### Don'ts

- [ ] The function's strategy _is not_ described in the documentation
- [ ] The function's strategy _is not_ described in any docstrings or tests
- [ ] Comments explain the _strategy_, **not** the _implementation_
- [ ] The function _does not_ have more comments than code
- If it does, consider finding a new strategy or a simpler implementation
Expand Down
66 changes: 66 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# ZeroThroughTen 🚀

Welcome to **ZeroThroughTen**,
a dynamic group of passionate learners united by a shared enthusiasm for coding, collaboration, and creative problem-solving. 🌟 Together, we transform challenges into stepping stones for growth, innovation, and success. 💡

At ZeroThroughTen, every contribution matters, every voice is heard, and every member is an integral part of our journey. We believe in learning, growing, and achieving **as a team**—where the strength of one enhances the power of all. 🤝

---

## **About Us**

We are **ZeroThroughTen**, a group of enthusiastic problem-solvers driven by curiosity, creativity, and a commitment to mastering programming skills. We don't just solve problems—we redefine them, turning challenges into opportunities to build impactful and meaningful solutions. 🚀

Our group thrives on collaboration, where every idea adds value and every challenge is tackled together. Whether it’s debugging code, brainstorming new ideas, or building innovative solutions, we’re here to **shine brighter, together. 🌈**

---

## 🛠️ **Our Mission**

- **Learn and Grow**: Sharpen programming and problem-solving skills through hands-on collaboration and experimentation.
- **Collaborate to Innovate**: Build impactful projects while fostering a culture of open communication and shared knowledge.
- **Master the Tools**: Enhance familiarity with GitHub workflows, version control, and best coding practices.
- **Support Each Other**: Cultivate an inclusive and inspiring team environment where every member feels valued.

---

## 🔗 **Communication Channels**

- **Slack**: Daily updates, task discussions, and real-time collaboration.
- **Weekly Meetings**: Thursdays at 7:00 PM CET (Central European Time) on Zoom.
- **GitHub**: Central hub for code contributions, pull requests, and documentation.

> Remember, teamwork is the heart of ZeroThroughTen! 💬
---

## 🧩 **Our Values**

1. **Collaboration**: Together, we achieve more.
2. **Respect**: Every idea matters, every voice counts.
3. **Curiosity**: Always stay curious, always stay creative.
4. **Accountability**: Take ownership of your tasks while supporting your teammates.
5. **Excellence**: Strive for clean, efficient, and impactful solutions.

---

## 📝 **Our Goals**

- Build a collaborative project where every member contributes meaningfully.
- Learn to review and improve code collaboratively.
- Explore new tools, frameworks, and technologies together.
- Develop solutions that are innovative, efficient, and impactful.

---

## 🎉 **Acknowledgments**

A huge **shoutout** to every member of **ZeroThroughTen** for their dedication, hard work, and creativity. 💪
Each step we take, each line of code we write, brings us closer to our goals—**one breakthrough at a time. 🌟**

Let’s continue to learn, grow, and shine together. ✨
**Remember, from zero through ten, the possibilities are infinite. 🔢**

---

Stay curious. Stay creative. Keep coding. 🚀
8 changes: 4 additions & 4 deletions collaboration/README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Collaboration

## Group “ET6-foundations-group-10
## Group “ZeroThroughTen

The group is focused on professional communication in developing the _**''“ET6-foundations-group-10**_ project to implement the _Foundations Track_ syllabus of the [_MIT Emerging Talent_](https://emergingtalent.mit.edu/) program.
The group is focused on professional communication in developing the _**“ZeroThroughTen**_ project to implement the _Foundations Track_ syllabus of the [_MIT Emerging Talent_](https://emergingtalent.mit.edu/) program.

### Norms of the group

1. We try to communicate on a professional level on issues related to the project “ET6-foundations-group-10” development and implementation of the Foundations Track syllabus of the MIT Emerging Talent program. We do not touch on issues of personal characteristics, religious beliefs, political views, or level of competence.
2. We communicate asynchronously using Slack and GitHub tools, so our communication needs to be documented and other group members can view the subject of the communication, the discussion itself, and the results of the communication.
1. We try to communicate on a professional level on the issues related to the project development and implementation according to the Foundations Track syllabus of the MIT Emerging Talent program. We do not touch on issues of personal characteristics, religious beliefs, political views, or level of competence.
2. We communicate asynchronously using Slack and GitHub tools, so our communication needs to be documented to allow other group members to view the subject of the communication, the discussion itself, and the results of the communication.
3. All group meetings are scheduled in advance so that other group members can organize their time. All group communication is documented. Personal communication can take place online.
78 changes: 53 additions & 25 deletions collaboration/communication.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,46 +9,74 @@

# Communication

______________________________________________________________________
---

## Communication Schedule

| Day | How | The topic of discussion | | --- | :-: | ----------------------- |
| | | |
| **Day** | **How** | **Topic of Discussion** |
|---------------|--------------------------------|---------------------------|
| Flexible | Slack (Daily) | Quick updates, general communication |
| Twice a week | Google Meet | Progress updates, task discussions, and important decisions |

---

## Communication Channels

how often will we get in touch on each channel, and what we will discuss there:
### Frequency and topics for each channel

- **Slack**:
- **Purpose**: Daily communication, task updates, and sharing quick announcements.
- **Frequency**: Regularly active for asynchronous communication.

- **Google Meet**:
- **Purpose**: Discuss progress, blockers, and important milestones.
- **Frequency**: Twice per week or as needed based on the project phase.

- **Issues**:
- **Pull Requests**:
- **Slack/Discord**:
- **Video Calls**:
- **GitHub Issues**:
- **Purpose**: Track tasks, report bugs, and plan milestones.
- **Frequency**: Active for task management.

______________________________________________________________________
- **GitHub Pull Requests**:
- **Purpose**: Code reviews and collaboration.
- **Frequency**: Notified via Slack when a review is needed.

---

## Availability

### Availability for calling/messaging
### Team's General Availability

The team works asynchronously due to different time zones and schedules. To facilitate effective communication:

- Meeting times are determined by a poll or decided during prior meetings.
- Members are encouraged to stay active on Slack to ensure timely updates.
- Meetings are recorded when possible, and summaries are shared for those unable to attend.

| Day | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday | |
------ | :----: | :-----: | :-------: | :------: | :----: | :------: | :----: |
| _name_ | | | | | | | |
### Response Time

### How many hours everyone has per day
- **Messages**: Responses on Slack are expected within **12 hours**.
- **Code Reviews**: Pull requests are reviewed within **24 hours** whenever possible.

- name: _5h_;
- name: _6h_;
- name: _5h_;
- name: _4h_;
- name: _3h_;
---

## Asking for Help

There's a fine line between confidently learning from your mistakes, and
stubbornly getting no where. Here is a general guide for when to ask for help
based on how long you've been stuck on the same problem:
Here’s a general guide for when to ask for help if you’re stuck:

1. **0 -> 30 minutes**: Try solving the problem independently using available resources.
2. **30 -> 60 minutes**: Reach out to the group via Slack for input or support.
3. **60+ minutes**: If still unresolved, tag a coach or mentor on Slack or GitHub.

### Key Note

Don’t hesitate to ask for help when needed. Collaboration is about supporting each other to achieve the project goals.

---

## Meeting Agendas

Meeting agendas will be created before each scheduled meeting:

1. _0 -> 30 min_: Try on your own
1. _30 -> 60 min_: Ask your group for help
1. _60+ min_: Tag your coaches in Slack or GitHub
- Agendas are drafted using GitHub Issues, where members can add discussion points.
- Meeting minutes and action items are recorded and shared in the issue comments or via Slack.
- All agenda points are addressed before closing the meeting issue.
64 changes: 36 additions & 28 deletions collaboration/constraints.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,31 +4,39 @@

Some boundaries around our project.

## External

<!--
constraints coming from the outside that your team has no control over:
- project deadlines
- number of unit tests required to pass a code review
- technologies (sometimes a client will tell you what to use)
- power or connectivity
- ...
-->

## Internal: Involuntary

<!--
constraints that come from within your team, and you have no control over:
- each of your individual skill levels
- amount of time available to work on the project
-->

## Internal: Voluntary

<!--
constraints that your team decided on to help scope the project. they may include:
- coding style & conventions
- agree on a code review checklist for the project repository
- the number of hours you want to spend working
- only using the colors black and white
-->
---

## **External**

<!-- constraints coming from the outside that your team has no control over: -->

- **Deadline:** The project must be completed by **10 Jan 2025**.
- **Programming Language:** The programming language for this project is **Python** and cannot be changed.
- **Coding Standards:** All coding, documentation, and reviews must adhere to established standards and examples.
- **Restricted Pushes:** Direct pushes to the main branch are prohibited.
- **Branch Merging Rules:** Branches can only be merged after a pull request is reviewed and approved.
- **Team Size:** The team consists of 10 members. However, active participation will be observed throughout the process, and adjustments will be made as needed to ensure tasks are distributed effectively and project goals are met. This flexible approach allows the team to adapt based on member availability and engagement.

---

## **Internal: Involuntary**

<!-- constraints that come from within your team, and you have no control over: -->

- **Different Schedules:** Team members have varying commitments, making synchronous meetings difficult.
- **Learning Together:** Some members are still learning relevant skills, requiring collaboration and support.
- **Limited Availability:** Balancing this project with other responsibilities might reduce availability at times.
- **Knowledge Gaps:** Some members lack experience in specific technologies or concepts, which may slow progress.
- **Dependency on Others:** Certain tasks depend on the completion of others, potentially causing bottlenecks.
- **Limited Review Capacity:** Fewer reviewers might delay pull request approvals and overall progress.

---

## **Internal: Voluntary**

<!-- constraints that your team decided on to help scope the project. -->

- **Scope Management:** The project scope is deliberately kept small to ensure timely completion and avoid unnecessary complexity.
- **Adherence to Rules:** The team agrees to follow coding style guides, documentation standards, and review conventions.
- **Collaboration Commitment:** All members are dedicated to equal participation and supporting one another.
- **Documentation Priority:** All tasks, decisions, and code will be properly documented to facilitate collaboration.
32 changes: 32 additions & 0 deletions collaboration/learning_goals.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,37 @@
# Learning Goals

## Group Objectives

The primary goal of our group is to enhance our understanding and practical skills in software development by working collaboratively on exercises. Each member brings unique objectives, and we aim to create a supportive environment where these individual goals can be achieved.

## Collective

1. **Enhance Problem-Solving Skills**: Apply data structures (DSs) and algorithms to solve complex problems effectively.
2. **Learn and Practice New Techniques**: Explore new programming language features and techniques to improve code quality.
3. **Focus on Readability and Documentation**: Develop solutions that are well-documented, clear, and maintainable.
4. **Improve Development Speed**: Practice strategies to write and debug code faster, aiming for efficiency.
5. **Collaborative Code Reviews**: Engage in multiple review cycles to learn from feedback and refine solutions collaboratively.

---

## Individual

### Emre Biyik

- Review data structures and algorithms studied previously.
- Focus on writing more complete and readable solutions.
- Gain deeper experience with version control tools like Git and GitHub, especially in team projects.

### Oleksandr Maksymikhin

- Study the Python programming language.
- Improve skills for participation in group projects using the version control system GitHub.
- Investigate the functionality of GitHub (Issues, Project Board, Actions, CI/CD).

---

## Group Approach

- Regularly review and reflect on progress towards these goals during meetings.
- Support each other in achieving individual and shared objectives through collaborative exercises.
- Use tools like GitHub Issues and Project Boards to ensure visibility and accountability.
68 changes: 61 additions & 7 deletions collaboration/retrospective.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,77 @@
<!-- this template is for inspiration, feel free to change it however you like! -->

# Retrospective

> “Regardless of what we discover, we understand and truly believe that everyone
> did the best job they could, given what they knew at the time, their skills
> and abilities, the resources available, and the situation at hand.”
>
> - [Norm Kerth](http://www.amazon.com/Project-Retrospectives-Handbook-Reviews-Dorset-ebook/dp/B00DY3KQJU/ref=tmm_kin_swatch_0?_encoding=UTF8&sr=&qid=)
---

## Stop Doing

- **Challenges Faced:**
- Initial difficulties in understanding the complete GitHub workflow.
- Errors during the push process from local machines to GitHub, such as merge conflicts or incomplete changes.
- Limited initial familiarity with GitHub’s collaborative features, leading to delays in resolving issues.

*Takeaway:* Invest more time in understanding GitHub tools and workflows at the start of the project to minimize errors and delays.

---

## Continue Doing

- **What Worked Well:**
- Collaborative problem-solving improved over time, especially during CI/CD checks and error resolution.
- Regular document reviews and feedback fostered team learning and improved overall quality.
- Clear documentation and communication in Slack channels helped the team address challenges effectively.

*Takeaway:* Continue building on strong collaboration and communication practices.

---

## Start Doing

- **New Ideas for Future Projects:**
- Document the step-by-step GitHub workflow for all team members to refer to during the project.
- Establish a shared resource for documenting common errors and solutions (e.g., troubleshooting merge conflicts or CI errors).
- Schedule regular review sessions to identify errors earlier in the project lifecycle.

*Takeaway:* Implement these strategies to ensure a smoother and more efficient workflow in future projects.

---

## Lessons Learned

______________________________________________________________________
- Working on the GitHub Team Project provided invaluable insights into:
- Pushing updates from local machines to GitHub and managing version control.
- Troubleshooting challenges like merge conflicts, rough draft errors, and CI/CD issues.
- Reviewing, commenting, and improving code collaboratively.
- Observing the step-by-step lifecycle of a project, from initiation to finalization.
- The importance of effective communication and documentation in ensuring project success.

These lessons enhanced both technical and collaboration skills, laying the foundation for better teamwork in future projects.

---

## Strategy vs. Board

### What parts of your plan went as expected?
- **What parts of your plan went as expected?**
- GitHub collaboration improved over time with regular communication and troubleshooting.
- Document reviews and feedback loops were successfully implemented.

- **What parts of your plan did not work out?**
- Early misunderstandings of GitHub workflows caused delays.

- **Did you need to add things that weren't in your strategy?**
- Yes, additional time and resources were allocated for troubleshooting and learning GitHub features.

### What parts of your plan did not work out?
- **Or remove extra steps?**
- Simplifying the review and feedback process helped focus on key areas.

### Did you need to add things that weren't in your strategy?
---

### Or remove extra steps?
This retrospective reflects the challenges, achievements, and lessons learned during the GitHub Team Project.
The project provided an invaluable opportunity to see a software development process in its entirety, from local pushes to collaborative reviews and debugging.
Moving forward, these experiences will guide us in delivering even more efficient and successful projects.
Thank you all for your dedication and effort!
Loading

0 comments on commit 0841769

Please sign in to comment.