Google Code-in - Time to move for a GitHub Repository

Hello Everyone,

Since I was a mentor for last year, I encountered some problems with the students who worked for several tasks. Eg :

  • We asked to create an HTML based email template. So some students used Online Docs, Pastebin, Gists, and direct HTML page uploads. BTW we managed to bring those works into one common area as we expected.
  • We had some coding tasks which was the part of OpenMRS modules like make comments, add constructors, find conventions issues. But we didn’t have any simple data structures and algorithms, OOP, and unit testing tasks for kids which are very important at the beginning of the software development. So I feel, Good to have some of those simple tasks this time.
  • Some students missed having some experience with GitHub, Git commands, and blogging last time. It is also a very important part of the Open Source. So we need to think about these aspects to help them for working on the Open source technologies.

Can we have a repository for GCI?

I have planned to manage a separate repository called openmrs-gci-contributions which will be used to keep the important students works from Google Code-in. It can be used to,

  • Last year, We had some tasks in Design category such as designing t-shirts, banners, and stickers for OpenMRS. But we just managed those in the GCI dashboard. Anyone outside the GCI dashboard couldn’t get those, and kids also missed to show their works to this community. So I would like to keep the students designs inside this public repository
  • Last year also, We had some tasks in Documentation such as writing biography, history of OpenMRS, and etc. Still, we missed those out of the GCI dashboard. So I would like to keep those documentations inside this public repository
  • Still we don’t have any simple Data structures and Algorithms or object-oriented based coding tasks for kids (Last year we had some coding tasks in the OpenMRS modules repositories). Most of the kids are just beginners in software development. So it would be better to guide them to work on some simple Data Structures and Algorithms tasks. If we track those works in the Git repository, then it will be easy for reviews and comments also. Eg : Write an Java/Python code to calculate the area of the Circle.

What are the benifits for having a repository for GCI?

  1. We can keep the important works for some tasks (not all) for each year under the OpenMRS GitHub Organization, So we can use if for the referrals in the future
  2. We can help the students to familiarize with the GitHub and Git commands since it’s the most required for OpenSource development
  3. Easy for code-based reviews (for Data structures and Algorithms tasks, simple OOP tasks, and unit testing tasks)
  4. Students also use this repository for their referrals and can use it to show their works in the future.

Structure of the Repository

Sample Repository : GitHub - suthagar23/openmrs-contrib-gci

image

  • We will create a seperate folder for each year, and can keep the important works of the students inside those folders.
  • The folder name inside the repected folder for current GCI will be the task id (eg : GCI-128). There will be a readme file with some basic details of the task (We can simply like to the JIRA ticket or copy that information)
  • Students will create files inside those tasks folders for their works, and they will use their OpenMRS-Id or name for those files.

So I would like to get your suggestions to improve this idea which can help us for moving to the next level :wink:

2 Likes

This seems like a reasonable request. Some initial reactions:

  • Naming the repository openmrs-contrib-gci would more closely align with existing repo names

  • I’m assuming that students will only interact through pull requests – i.e., adding every GCI student’s GitHub account to the OpenMRS organization doesn’t sound good.

  • If binary files (images, slides, etc.) are included the repository could get big quickly, which might be an issue if students in resource-constrained environments are expected to clone the repo.

  • Will having all students working in the same repository make copy & paste responses more likely?

Naming the repository openmrs-contrib-gci would more closely align with existing repo names

I agree with you @burke So let’s go for openmrs-contrib-gci as the repo name.

I’m assuming that students will only interact through pull requests – i.e., adding every GCI student’s GitHub account to the OpenMRS organization doesn’t sound good.

Yes, that’s correct. Each student will only interact with the pull requests

If binary files (images, slides, etc.) are included the repository could get big quickly, which might be an issue if students in resource-constrained environments are expected to clone the repo.

I forgot about this complication!. Any idea or any space which can accept those uploads :smile:

Will having all students working in the same repository make copy & paste responses more likely?

Yes, High possibility. BTW it will easy for the mentors to find out the plagarism among other student’s works.

Any luck on having this :smile:?

Will having all students working in the same repository make copy & paste responses more likely?

  • We can have multiple questions for a type of question (different type of simple OOP question)
  • Students can work on multiple languages for a question. So if one student picks a language, then another student might need to go for another language if not he have any different idea to do that question (He can’t just change the variables and methods name of the exiting work).

Cc : @burke @dkayiwa

@suthagar23 having what?

@dkayiwa I meat, Is it possible to have a separate repository for GCI as I mentioned above :slight_smile: ?

@suthagar23 did you resolve the issue of binary files mentioned above?

If binary files (images, slides, etc.) are included the repository could get big quickly, which might be an issue if students in resource-constrained environments are expected to clone the repo.

As the first step, I would like to use this repo for only some basic coding tasks. Such as

  1. Creating OOP simple tasks (Implement interfaces, inherit parent classes… etc) in different languages
  2. Adding Unit tests for the methods
  3. Simple applications based on the OOP

If binary files (images, slides, etc.) are included the repository could get big quickly, which might be an issue if students in resource-constrained environments are expected to clone the repo.

For the binary files, I thought to upload those into the Google Drive or any cloud-based solutions and paste those public link into this GitHub Page. So when we view those *.md files, we can get the actual view.

Eg-

# OpenMRS GCI Contributions

This repository will be used to keep the works, contributions, and reports of the GCI students. 

![alt text](https://4.bp.blogspot.com/-O2qmt7uOeL4/WI9v7hHuuBI/AAAAAAAABCA/h3cuUj-xz3MExRuSFmNwCpKnnru2fVQhwCLcB/s400/GCI%2Bofficial%2Bhorizontal_1372x448dp.png)

Output will be,

Shouldn’t those basic coding tasks go to their respective module or core platform repositories?

Jumping in here – doesn’t this directly violate the GCI rules around personal information. The repo should be private or should use something like the instance id as opposed to the student’s name for folder/asset file naming.

1 Like

Interesting! :slight_smile:

Basically GDPR prevents us from using names…and this gets around that.