2017-04-12 05:20:16 +00:00
# Project Based Learning
2017-04-28 05:20:38 +00:00
A list of programming tutorials in which learners build an application from scratch. These tutorials are divided into different primary programming languages. Some have intermix technologies and languages.
2017-04-28 05:32:31 +00:00
To get started, simply fork this repo. Please refer to [CONTRIBUTING.md ](CONTRIBUTING.md ) for contribution guidelines.
2017-04-12 05:20:16 +00:00
## Table of Contents:
2017-04-12 06:10:48 +00:00
* [C/C++ ](#cc )
2017-05-02 06:08:44 +00:00
* [C# ](#c )
2017-05-10 22:57:12 +00:00
* [Clojure ](#clojure )
2017-05-02 06:02:55 +00:00
* [Java ](#java )
2017-04-12 05:20:16 +00:00
* [JavaScript ](#javascript )
* [Python ](#python )
2017-04-12 05:59:52 +00:00
* [Go ](#go )
2017-04-12 05:37:11 +00:00
* [Ruby ](#ruby )
2017-04-12 05:31:55 +00:00
* [Haskell ](#haskell )
2017-05-04 22:18:35 +00:00
* [PHP ](#php )
2017-05-02 09:53:22 +00:00
* [R ](#r )
2017-04-12 06:19:02 +00:00
* [Rust ](#rust )
2017-04-28 19:45:54 +00:00
* [Additional resources ](#additional-resources )
2017-04-12 05:20:16 +00:00
2017-04-12 05:38:44 +00:00
## C/C++:
2017-04-12 05:20:16 +00:00
* [Write a Shell in C ](https://brennan.io/2015/01/16/write-a-shell-in-c/ )
* [Build Your Own Text Editor ](http://viewsourcecode.org/snaptoken/kilo/ )
* [Build Your Own Lisp ](http://www.buildyourownlisp.com/ )
2017-04-12 05:31:55 +00:00
* [Write an OS from scratch ](https://github.com/tuhdo/os01 )
2017-04-12 05:38:44 +00:00
* [How to Make Minecraft in C++/OpenGL ](https://www.youtube.com/playlist?list=PLMZ_9w2XRxiZq1vfw1lrpCMRDufe2MKV_ )
2017-04-29 06:44:18 +00:00
* [How to Write an Emulator (CHIP-8 interpreter) ](http://www.multigesture.net/articles/how-to-write-an-emulator-chip-8-interpreter/ )
2017-04-12 05:20:16 +00:00
2017-05-02 06:08:44 +00:00
## C#:
* [Learn C# By Building a Simple RPG Game ](http://scottlilly.com/learn-c-by-building-a-simple-rpg-index/ )
2017-05-02 06:11:02 +00:00
* [Create a Rogue-like game in C# ](https://roguesharp.wordpress.com/ )
2017-05-02 06:15:48 +00:00
* [Create a Blank App with C# and Xamarin (work in progress) ](https://www.intertech.com/Blog/xamarin-tutorial-part-1-create-a-blank-app/ )
2017-05-02 06:17:20 +00:00
* [Build iOS Photo Library App with Xamarin and Visual Studio ](https://www.raywenderlich.com/134049/building-ios-apps-with-xamarin-and-visual-studio )
2017-05-02 06:08:44 +00:00
2017-05-10 22:57:12 +00:00
## Clojure:
* [Build a Twitter Bot with Clojure ](http://howistart.org/posts/clojure/1/index.html )
2017-05-02 06:02:55 +00:00
## Java:
* [Build a Simple HTTP Server with Java ](http://javarevisited.blogspot.com/2015/06/how-to-create-http-server-in-java-serversocket-example.html )
2017-05-02 06:25:44 +00:00
* [Build an Android Flashlight App ](https://www.youtube.com/watch?v=dhWL4DC7Krs )
2017-05-02 09:48:17 +00:00
* [Build a Spring Boot App with User Authentication ](https://scotch.io/tutorials/build-a-spring-boot-app-with-user-authentication )
2017-05-02 06:02:55 +00:00
2017-04-12 05:20:16 +00:00
## JavaScript:
2017-05-05 06:09:25 +00:00
### Mobile Application:
* [Build a React Native Todo Application ](https://egghead.io/courses/build-a-react-native-todo-application )
2017-05-02 09:46:01 +00:00
### Web Applications:
2017-05-05 22:32:37 +00:00
#### React:
2017-04-12 05:20:16 +00:00
* [Create Serverless React.js Apps ](http://serverless-stack.com/ )
* [Create a Trello Clone ](http://codeloveandboards.com/blog/2016/01/04/trello-tribute-with-phoenix-and-react-pt-1/ )
2017-05-01 14:05:57 +00:00
* [Create a Character Voting App with React, Node, MongoDB and SocketIO ](http://sahatyalkabov.com/create-a-character-voting-app-using-react-nodejs-mongodb-and-socketio/ )
2017-05-01 08:20:37 +00:00
* [Build a Full Stack Movie Voting App with Test-First Development using Mocha, React, Redux and Immutable ](https://teropa.info/blog/2015/09/10/full-stack-redux-tutorial.html )
2017-04-28 05:14:37 +00:00
* Build a Serverless MERN Story App with Webtask.io
2017-04-28 05:34:19 +00:00
* [Part 1 ](https://scotch.io/tutorials/build-a-serverless-mern-story-app-with-webtask-io-zero-to-deploy-1 )
* [Part 2 ](https://scotch.io/tutorials/build-a-serverless-mern-story-app-with-webtask-io-zero-to-deploy-2 )
2017-05-05 22:32:37 +00:00
#### Angular:
* [Build an Instagram Clone ](https://hackhands.com/building-instagram-clone-angularjs-satellizer-nodejs-mongodb/ )
2017-05-02 16:33:47 +00:00
* Build an offline-capable Hacker News client with Angular 2+
* [Part 1 ](https://houssein.me/angular2-hacker-news )
* [Part 2 ](https://houssein.me/progressive-angular-applications )
2017-05-05 22:32:37 +00:00
#### Others (Node, Hapi, Express...):
* [Build a URL Shortener with Node, MongoDB and Hapi.js ](https://www.codetuts.tech/build-a-url-shortener-node-hapi-js/?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more )
* [Build a real-time Markdown Editor with NodeJS ](https://scotch.io/tutorials/building-a-real-time-markdown-viewer )
2017-05-05 06:22:50 +00:00
* Build a Progressive Web Application (PWA)
* [Part 1 ](https://bitsofco.de/bitsofcode-pwa-part-1-offline-first-with-service-worker/ )
* [Part 2 ](https://bitsofco.de/bitsofcode-pwa-part-2-instant-loading-with-indexeddb/ )
* [Part 3 ](https://bitsofco.de/bitsofcode-pwa-part-3-push-notifications/ )
2017-05-02 09:46:01 +00:00
### Game Development:
2017-04-28 19:08:13 +00:00
* [Make 2D Breakout Game using Phaser ](https://developer.mozilla.org/en-US/docs/Games/Tutorials/2D_breakout_game_Phaser )
2017-04-28 19:10:13 +00:00
* Make Flappy Bird in HTML5 and JavaScript with Phaser
* [Part 1 ](http://www.lessmilk.com/tutorial/flappy-bird-phaser-1 )
* [Part 2 ](http://www.lessmilk.com/tutorial/flappy-bird-phaser-2 )
2017-05-02 09:46:01 +00:00
### Desktop Application:
2017-04-28 19:40:23 +00:00
* Build a Music Player with React & Electron
* [Part 1 ](https://scotch.io/tutorials/build-a-music-player-with-react-electron-i-setup-basic-concepts )
* [Part 2 ](https://scotch.io/tutorials/build-a-music-player-with-react-electron-ii-making-the-ui )
2017-05-08 09:21:50 +00:00
* [Part 3 ](https://scotch.io/tutorials/build-a-music-player-with-react-electron-iii-container-component )
2017-05-02 09:46:01 +00:00
### Miscellaneous:
* [How to Build a Web Framework in Less Than 20 Lines of Code ](https://www.pubnub.com/blog/build-yourself-a-web-framework-in-less-than-20-lines-of-code/ )
2017-05-05 22:29:37 +00:00
* [Build Yourself a Redux ](https://zapier.com/engineering/how-to-build-redux/ )
2017-04-12 05:20:16 +00:00
## Python:
2017-05-02 06:02:03 +00:00
### Web Scraping:
2017-05-02 00:54:47 +00:00
* [Mining Twitter Data with Python ](https://marcobonzanini.com/2015/03/02/mining-twitter-data-with-python-part-1/ )
* [Scrape a Website with Scrapy and MongoDB ](https://realpython.com/blog/python/web-scraping-with-scrapy-and-mongodb/ )
2017-05-02 06:02:03 +00:00
### Web Applications:
2017-05-02 00:54:47 +00:00
* [Build a Microblog with Flask ](https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world )
* [Create a blog webapp in Django ](https://tutorial.djangogirls.org/en/ )
* [Choose Your Own Adventure Presentations ](https://www.twilio.com/blog/2015/03/choose-your-own-adventures-presentations-wizard-mode-part-1-of-3.html )
* [Build a Todo List with Flask and RethinkDB ](https://realpython.com/blog/python/rethink-flask-a-simple-todo-list-powered-by-flask-and-rethinkdb/ )
2017-05-02 06:02:03 +00:00
### Bots:
2017-04-12 05:20:16 +00:00
* [Build a Reddit Bot ](http://pythonforengineers.com/build-a-reddit-bot-part-1/ )
2017-04-12 05:37:11 +00:00
* [How to Make a Reddit Bot - YouTube ](https://www.youtube.com/watch?v=krTUf7BpTc0 )
2017-04-12 05:26:30 +00:00
* [Build a Facebook Messenger Bot ](https://blog.hartleybrody.com/fb-messenger-bot/ )
2017-04-13 00:29:08 +00:00
* [Making a Reddit + Facebook Messenger Bot ](https://pythontips.com/2017/04/13/making-a-reddit-facebook-messenger-bot/ )
2017-05-06 16:20:00 +00:00
* [How To Create a Telegram Bot Using Python ](https://khashtamov.com/en/how-to-create-a-telegram-bot-using-python/ )
2017-05-02 06:02:03 +00:00
### Miscellaneous:
2017-04-12 05:26:30 +00:00
* [Build a Simple Interpreter ](https://ruslanspivak.com/lsbasi-part1/ )
2017-04-12 05:59:03 +00:00
* [Write a NoSQL Database in Python ](https://jeffknupp.com/blog/2014/09/01/what-is-a-nosql-database-learn-by-writing-one-in-python/ )
2017-04-13 16:35:37 +00:00
* [Building a Gas Pump Scanner with OpenCV/Python/iOS ](https://hackernoon.com/building-a-gas-pump-scanner-with-opencv-python-ios-116fe6c9ae8b )
2017-04-12 05:59:03 +00:00
## Go:
* [Create a Real Time Chat App with Golang, Angular 2, and WebSocket ](https://www.thepolyglotdeveloper.com/2016/12/create-real-time-chat-app-golang-angular-2-websockets/ )
2017-04-28 20:24:47 +00:00
* [Building Go Web Applications and Microservices Using Gin ](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin )
2017-04-28 20:25:36 +00:00
* [How to Use Godog for Behavior-driven Development in Go et started with Godog ](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go )
2017-04-12 05:31:55 +00:00
2017-05-05 05:56:33 +00:00
## PHP
2017-05-04 22:18:35 +00:00
* [How To Build A Blog With Laravel ](https://www.youtube.com/playlist?list=PLwAKR305CRO-Q90J---jXVzbOd4CDRbVx )
2017-05-10 06:57:17 +00:00
* [Make your own blog (in pure PHP) ](http://ilovephp.jondh.me.uk/en/tutorial/make-your-own-blog )
2017-05-04 22:18:35 +00:00
2017-04-12 05:37:11 +00:00
## Ruby:
* [Build Instagram From Scratch with Ruby on Rails ](https://www.dropbox.com/s/9vq430e9s3q7pu8/Let%27s%20Build%20Instagram%20with%20Ruby%20on%20Rails%20-%20Free%20Edition.pdf?dl=0 )
2017-05-02 09:49:03 +00:00
* [Build a CMS with Ruby on Rails ](https://pchm.co/posts/tutorial-how-to-build-a-cms-in-ruby-on-rails )
2017-05-02 09:51:03 +00:00
* [Build a Social Network using Rails ](https://medium.com/rails-ember-beyond/how-to-build-a-social-network-using-rails-eb31da569233 )
2017-04-12 05:37:11 +00:00
2017-04-12 05:31:55 +00:00
## Haskell:
2017-04-12 06:19:02 +00:00
* [Write You a Haskell - Build a modern functional compiler ](http://dev.stephendiehl.com/fun/ )
2017-04-28 05:35:23 +00:00
* [Write Yourself a Scheme in 48 hours ](https://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours )
2017-05-08 06:30:47 +00:00
* [Write You A Scheme, Version 2 ](https://github.com/write-you-a-scheme-v2/scheme )
2017-05-02 09:42:57 +00:00
* [Roll Your Own IRC Bot ](https://wiki.haskell.org/Roll_your_own_IRC_bot )
2017-05-02 09:59:03 +00:00
* [Making Movie Monad ](https://lettier.github.io/posts/2016-08-15-making-movie-monad.html )
2017-05-11 02:56:11 +00:00
### Out Of Date:
* [Making a Website with Haskell ](http://adit.io/posts/2013-04-15-making-a-website-with-haskell.html )
2017-04-12 06:19:02 +00:00
2017-05-02 09:53:22 +00:00
## R:
2017-05-06 16:52:32 +00:00
* [Build Web Apps with Shiny ](http://shiny.rstudio.com/tutorial/ )
2017-05-02 09:53:22 +00:00
2017-04-12 06:19:02 +00:00
## Rust:
* A Simple Web App in Rust
* [Part 1 ](http://joelmccracken.github.io/entries/a-simple-web-app-in-rust-pt-1/ )
* [Part 2a ](http://joelmccracken.github.io/entries/a-simple-web-app-in-rust-pt-2a/ )
2017-04-13 17:01:57 +00:00
* [Part 2b ](http://joelmccracken.github.io/entries/a-simple-web-app-in-rust-pt-2b/ )
2017-04-28 19:42:35 +00:00
* [Write an OS in Rust ](http://os.phil-opp.com/ )
## Additional Resources
* [React Redux Links ](https://github.com/markerikson/react-redux-links )
* [Full Stack Python ](https://www.fullstackpython.com/ )
* [Node School ](https://nodeschool.io/ )
2017-04-28 19:45:54 +00:00
* [ScotchIO ](https://scotch.io/ )
2017-04-29 06:44:46 +00:00
* [Exercism ](http://www.exercism.io/ )
2017-05-05 06:02:28 +00:00
* [Egghead.io ](http://www.egghead.io/ )