I use GitHub to host my repositories including all the projects I did for the Udacity Android Nanodegrees. This helps me to organise them, check in the future how I implemented things and most importantly personal visibility.
I used GitHub as my Android portfolio. In each repository I added a README file describing the project, the Android goodies it contained and also added some screenshots of the final app.
The problem
One of the most popular repos I have is a project I did for Udacity's Android Basics Nanodegree, that consisted in building an Inventory App. This project required creating a simple app using a local SQLite Database, cursors, a ListView and some permissions.
Since I uploaded it to GitHub it started to get forked frequently (even got some stars! â). I realised that most of the people that forked it, deleted it afterwards. This means that maybe it wasn't what they expected, right? Well, I noticed that some people forked it and later deleted my name, uploading my same project (sometimes without even changing the name!) on a new repo. This is the same as downloading the repo to your local machine and uploading it to your GitHub, removing all git history and any trace of my authorship.
[…] some people forked it and later deleted my name, uploading my same project […] on a new repo.
At this point I was curious about this fact and started checking periodically the traffic of my repositories. Unfortunately GitHub only displays analytics for the last 14 days, but as far as I've seen, the average number of unique visitors is 150 every 2 weeks. I find it a lot for a project like this!
However I’m not getting only visitors, but also clones. An average of 5 clones every 2 weeks.
The real problem comes when people just copy-paste all the project content or just change my name to submit it to Udacity as their own work. When you enroll in a Udacity Nanodegree you have to agree on the Udacity Honor Code, that states that you are submitting your own work. Therefore breaking this can end in getting you expelled from a program without refund.
So why use GitHub for your Udacity projects then?
First of all, Udacity encourages you to upload your projects to GitHub, as this will help you to build your portfolio. During the Android Nanodegrees I took, Udacity suggested to use GitHub, also referring to their course "How to Use Git and GitHub". There are two ways of submitting a project, either linking your GitHub repository or uploading a ZIP file.
Secondly, uploading my Udacity projects to GitHub is my portfolio and gives me visibility to potential employers. If you google "Udacity inventory app" you will probably see my project as one of the first results.
Furthermore it helps students: Having a guidance helps them to get unstuck. And how do I know? I got some messages from students thanking me for my repos as they helped them. Only a few, but it always makes my day! ðŸ˜
Today someone wrote me to thank me for my GitHub projects from the Android Nanodegree. Made my day! ðŸ˜â¤ï¸ pic.twitter.com/VImYK2PaXq
— Lara MartÃn (@lariki ) July 27, 2017
The license
As I want to keep these repos public to showcase my work and potentially help others, I figured out that adding a license could help to warn about the plagiarism issue.
The license I add is the MIT license plus some personal words about Udacity Honor Code:
PROJECT LICENSE
This project was submitted by Lara MartÃn as part of the Nanodegree At Udacity.
As part of Udacity Honor code, your submissions must be your own work, hence
submitting this project as yours will cause you to break the Udacity Honor Code
and the suspension of your account.
Me, the author of the project, allow you to check the code as a reference, but if
you submit it, it's your own responsibility if you get expelled.
Copyright (c) 2017 Lara MartÃn
Besides the above notice, the following license applies and this license notice
must be included in all works derived from this project.
MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
[...]
https://gist.github.com/laramartin/7796d730bba8cf689f628d9b011e91d8
I added this license to the README files and in all project files. Thankfully Android Studio helps you with it, let me explain how to achieve this.
Adding a license to all files with Android Studio
To add a license to your project, first you need to create a template with the text. Go to Preferences -> Editor -> Copyright -> Copyright Profiles. Here add a new profile, give it a name and paste your license.
Once you have a copyright profile you want to use, you can add it to a specific file you want or to all:
- Add it as your default project copyright: Preferences -> Editor -> Copyright -> select the desired copyright file
- Update the copyright: select the file(s) you want to add the license to -> right click -> Update copyright. There is also a shortcut when adding a copyright in a single file, just use
cmd + N
in mac orAlt + Insert
for Windows.
and done!
Now with these licenses I feel I have warned the students enough about the dangers of plagiarism. Nevertheless, I hope my repos help you to progress in your learning! 💚
Top comments (15)
It should be sufficient. Do you know what I found two days after adding the first license in one README of a project? Yes, one person already broke it and remove my name after copying my project.
After that, I added the license to all files. As you can imagine, just since I added them 2 weeks ago, I already found my project cloned, with licenses removed but with some files that still had them! 🕵️♀️
You can add the license to the files you want. Or not add them. As you wish. All I want is to warn and let them know that plagiarism has consequences.
Licenses don't harm if you're using my Udacity projects to learn 😊
Oh wow!
I just did a quick search with a line from your license and found a few projects that aren't forks that still have that line.
github.com/search?q=This+project+w...
Yes!! It worked pretty fast and well! :)
Yes, it is, but this way it's more apparent for anyone copying it
This is very serious and sad thing in the same time. You should report it to Udacity.
They are aware of that and take it very serious. They have their own ways to detect plagiarism.
I also wrote them once. They told me they already know pretty well my code style!
This is good. I am sure they take such issues serioudly as I am a Udacity scholar.
I know it is something terrible that you intend to help others and find out your work is stolen.
License is great but I would suggest to make it not buildable by default. This will lower the chance that your work will be used by those individuals who want's just copy and paste.
I thought about that, but I realised it goes against my goal:
Therefore I need it to build 😊
I believe your potential employer won't bother to compile and run your project from github.
More likely that they spent ~1-2 min looking into the code to just explore coding patterns and habits and try to evaluate you as an engineer.
Thanks a lot for sharing this!
I was wondering how to go this for my projects yesterday just before going to bed. Just what I needed ♥️
Good luck with your projects! 💪🤓❤️
Great tip! I'll take the advice and do the same in my future Udacity projects. Thanks for sharing! :)
Well done Lara!
it's sad how people fool itself into doing this :(
Hey Lara. I think this makes a lot of sense. Nice work. But I'm really thinking. Why are your projects getting so much attention. You must be doing something right. Would you mind sharing?