ICP1 - GeoSnipes/Big-Data GitHub Wiki

Sub-Team Members Class ID:
5-2 15 Naga Venkata Satya Pranoop Mutha
5-2 23 Geovanni West


This ICP is mainly about knowing what softwares and tools are required throughout this course. The primary task is to download, install and make them work i.e. test with a sample code in order to have a smooth flow.

Starting off, the first thing in the check list is

1.GitHub Desktop:

GitHub is a web-based hosting service for version control using git. It is mostly used for computer code. It provides access control and several collaboration features such as bug tracking, feature requests, task management, and wikis for every project. GitHub offers both plans for private and free repositories on the same account which are commonly used to host open-source software projects.As of April 2017, GitHub reports having almost 20 million users and 57 million repositories, making it the largest host of source code in the world. GitHub Desktop is a distributed revision control and source code management tool.


Steps to pull and push using github desktop app:

  1. Open github.com in your browser and sign in. Then create a new repository.
  2. While creating the repository, check the Include READ ME file and select either public or private depending on your choice to access the application.
  3. Once we create the repository, we can find the clone or download button. Click on that. It asks us option to either download or open in GitHub desktop. We click on download to download the source code. We click clone to desktop if we want to have a copy of it on our local system.
  4. Once we clone to our desktop, it asks for a location in our local system to save the work. We select the desired location and clone to local system.
  5. So, now changes can be done in the local system, commit them and then push that to the global one. In this way, if multiple people are working on the same code. This helps a lot.

Screenshot of Github Desktop


2. Zenhub Plugin

Zenhub addresses the pain points in tracking development work. It's simple, intutive, flexible, and integrated into a tool we already use daily.It helps in effective project management. It allows to have unified work flow for tasks, and each team member has a clarity at what position they are in the project and what needs to be done and when. We can add tasks, boards, epics, estimates, make reports, track progress of each of the member, observe how far we have achieved deadlines through the burndown charts, keeps track of issues every now and then

**Screenshot of ZenHub Plugin**

3. Screenshots of IDE's

a. Android Studio

Android Studio is the official IDE for Google's Android operating system, built on JetBrains' IntelliJ IDEA software and designed specially for Android development. It is a replacement for the Eclipse Android Development Tools (ADT) as primary IDE for native Android application development. Features in Android studio are:

* Gradle-based build support * Android-specific refactoring and quick fixes * Lint tools to catch performance, usability, version compatibility and other problems * ProGuard integration and app-signing capabilities * Template-based wizards to create common Android designs and components * A rich layout editor that allows users to drag-and-drop UI components, option to preview layouts on multiple screen configurations * Support for building Android Wear apps * Built-in support for Google Cloud Platform, enabling integration with Firebase Cloud Messaging (Earlier 'Google Cloud Messaging') and Google App Engine * Android Virtual Device (Emulator) to run and debug apps in the Android studio.
**Screenshot of Android Studio**


b. IntelliJ

IntelliJ IDEA is a Java integrated development environment (IDE) for developing computer software. It is developed by JetBrains, and is available as an Apache 2 Licensed community edition, and in a proprietary commercial edition. Both can be used for commercial development. The IDE provides certain features like code completion by analyzing the context, code navigation which allows jumping to a class or declaration in the code directly, code refactoring and options to fix inconsistencies via suggestions.


**Screenshot of IntelliJ**


c. PyCharm

PyCharm is an Integrated Development Environment (IDE) used in computer programming, specifically for the Python language. It is developed by the Czech company JetBrains. It provides code analysis, a graphical debugger, an integrated unit tester, integration with version control systems (VCSes), and supports web development with Django. Features are:

* Coding assistance and analysis, with code completion, syntax and error highlighting, linter integration, and quick fixes * Project and code navigation: specialized project views, file structure views and quick jumping between files, classes, methods and usages * Python refactoring: including rename, extract method, introduce variable, introduce constant, pull up, push down and others * Support for web frameworks: Django, web2py and Flask * Integrated Python debugger * Integrated unit testing, with line-by-line code coverage * Google App Engine Python development * Version control integration: unified user interface for Mercurial, Git, Subversion, Perforce and CVS with changelists and merge

PyCharm is cross-platform, with Windows, macOS and Linux versions.
Screenshot of PyCharm


4. SBT

sbt (Simple Build Tool) is an open-source build tool for Scala and Java projects, similar to Java's Maven and Ant.

Its main features are:

  • Native support for compiling Scala code and integrating with many Scala test frameworks
  • Continuous compilation, testing, and deployment
  • Incremental testing and compilation (only changed sources are re-compiled, only affected tests are re-run etc.)
  • Build descriptions written in Scala using a DSL
  • Dependency management using Ivy (which supports Maven-format repositories)
  • Integration with the Scala interpreter for rapid iteration and debugging
  • Support for mixed Java/Scala projects

Screenshot of SBT

5. Spark

Apache Spark is an open-source cluster-computing framework. Originally developed at the University of California, Berkeley's AMPLab, the Spark codebase was later donated to the Apache Software Foundation, which has maintained it since. Spark provides an interface for programming entire clusters with implicit data parallelism and fault tolerance.


Screenshot of spark shell command


6. Python

Python is an interpreted high-level programming language for general-purpose programming. Created by Guido van Rossum and first released in 1991, Python has a design philosophy that emphasizes code readability, and a syntax that allows programmers to express concepts in fewer lines of code, notably using significant whitespace. It provides constructs that enable clear programming on both small and large scales. Python features a dynamic type system and automatic memory management. It supports multiple programming paradigms, including object-oriented, imperative, functional and procedural, and has a large and comprehensive standard library.


Screenshot of Python Version


7. TensorFlow

TensorFlow is an open-source software library for dataflow programming across a range of tasks. It is a symbolic math library, and also used for machine learning applications such as neural networks. It is used for both research and production at Google. TensorFlow was developed by the Google Brain team for internal Google use. It was released under the Apache 2.0 open source license on November 9, 2015.


Screenshot of Tensor Flow

⚠️ **GitHub.com Fallback** ⚠️