DEV Community

Lara Martín 👩‍💻
Lara Martín 👩‍💻

Posted on

Why I added licenses to my Udacity projects

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.

My Android Inventory App GitHub traffic
My Android Inventory App GitHub clones

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! 😍

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.

Creating a copyright profile

Once you have a copyright profile you want to use, you can add it to a specific file you want or to all:

  1. Add it as your default project copyright: Preferences -> Editor -> Copyright -> select the desired copyright file
  2. 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 or Alt + Insert for Windows.

Adding a copyright to a project

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! 💚

Originally posted in my medium blog.

Top comments (15)

Collapse
 
lariki profile image
Lara Martín 👩‍💻

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 😊

Collapse
 
externconst profile image
Alex Figueroa

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...

Thread Thread
 
lariki profile image
Lara Martín 👩‍💻

Yes!! It worked pretty fast and well! :)

Collapse
 
hrmny profile image
Leah

Yes, it is, but this way it's more apparent for anyone copying it

Collapse
 
islam profile image
Islam Sayed

This is very serious and sad thing in the same time. You should report it to Udacity.

Collapse
 
lariki profile image
Lara Martín 👩‍💻

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!

Collapse
 
islam profile image
Islam Sayed

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.

Collapse
 
msoedov profile image
Alex Miasoiedov

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.

Collapse
 
lariki profile image
Lara Martín 👩‍💻

I thought about that, but I realised it goes against my goal:

  • having a portfolio
  • help others

Therefore I need it to build 😊

Collapse
 
msoedov profile image
Alex Miasoiedov

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.

Collapse
 
chrisvasqm profile image
Christian Vasquez

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 ♥️

Collapse
 
lariki profile image
Lara Martín 👩‍💻

Good luck with your projects! 💪🤓❤️

Collapse
 
cmmata profile image
Carles Mata

Great tip! I'll take the advice and do the same in my future Udacity projects. Thanks for sharing! :)

Collapse
 
haysarodrigues2 profile image
Haysa Rodrigues

Well done Lara!

it's sad how people fool itself into doing this :(

Collapse
 
oleohi profile image
Oleohi Alli

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?