Skip to content

bearhack-ucr/BioHack-Resources

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 

Repository files navigation

BioHack Resources

A collection of useful resources for the Hackers of BioHack.

Author: Rajbir Johar

Table of Contents

  1. Submitting your project
  2. Github
  3. Environment
  4. Sponsors
  5. Healthcare
  6. Programming Languages
  7. Web Development
  8. Hardware
  9. Virtual/Augmented Reality
  10. Mobile Development

Submitting your project

Submitting a Video

⚠️ Attention: You will need to provide a video link depicting your project in order to be considered for prizes.

You must submit on devpost HERE and add a video to your Devpost submission. (tutorial here).

Git And Github

Local Version Control (Git)

⚠️ Attention: You will need to provide a Github Link containing your code for submissions. Please read this thoroughly to familiarize yourself with Github.

  1. Git
    • Version control and file version management system.
    • Allows you to maintain consistent versions of code and backtrack when you need to.
    • Useful for collaboration on potentially large code bases with several people.
    • Git Commands
      • Used to save, branch, checkout, track, upload, download, share, collaborate, control versions of, revert, delete, nuke your code.
      • Cheat Sheet
    • Markdown
      • Used to write README.mds (like the one you're reading right now) to provide documentation for your code.
      • Cheat Sheet

Online Version Control (Github)

  1. Github
    • The most popular web-based hosting service for version control using Git.
    • Offers all of the distributed version control and source code management functionality of Git along with some of its own features.

Environment

Terminal

The terminal on your computer, when the right resources are installed, is a powerful tool for running your code and building applications. Changes are, the factory settings on your hacking machine aren't going to cut it to streamline building your application/idea.

The following is a list of tools/technologies to help you turn your ordinary computer into a certified hacking machine!

Common Terminal Commands

  1. Common Terminal Commands that will help you familiarize yourself with navigating and using the terminal.

MacOS

  1. Xcode
    • A MacOS specific IDE used to build Apple only software such as iOS, iPadOS, and MacOS apps.
    • Includes numerous general purpose languages and tools for many kinds of projects.
    • Install the Xcode Command Line Tools as well to make using the terminal easier.
  2. Homebrew
    • The best package manager available for MacOS
    • Allows your install anything else you might need that was not included in Xcode.
    • Once installed, try out brew install neofetch then afterwards, run neofetch for a cool little display of your computer's stats.
  3. Zsh
    • This is the current default Unix shell built on top of Bash for MacOS Mojave and above.
    • You can do a lot of cool customizations with Zsh to help you feel more like a hacker such as the following:
      • Oh My Zsh which allows you to manage your Zsh config.

Windows

  1. Windows Terminal
    • The recently released Windows Terminal allowing you to do everything you can on a Linux/Unix machine.
  2. Ubuntu Subsystem
    • Linux subsystem that allows you to run an emulated instance of Linux Ubuntu right within your powershell.

Linux

  1. Because of the sheer amount of different Linux distros that exist, please refer to your OS documentation on how to install packages for your specific system. You likely will not need a third party package manager since it is usually built into the terminal functionality.

Vim/Vi

  1. Use the command vim <file name> (without the angle brackets) to open the file up in vim/vi without leaving the terminal. This allows your edit your files on the fly without opening up an entire application.
  2. Cheat Sheet

Integrated Development Environment (IDE)

IDEs allow you to take code editing to another level. IDEs provide thousands of plugins to make coding easier and more enjoyable along with the countless themes to really personalize your coding environment.

Code Editors

  1. Visual Studio Code is probably the most popular IDE out there for code editing.
  2. Atom is another popular IDE.
  3. Sublime

General Purpose Programming Languages

  1. C++ - object-oriented, allows for low level data manipulation
  2. C# - intended to modernize paradigms set up by C++ and C, object-oriented
  3. Python - high level, emphasizes code readability
  4. Java - heavily class-based and object-oriented
  5. JavaScript - high level, the dominant programming language of the web

Package Managers (runs on any OS)

  • Pip
    • the recommended package manager/installer for the Python language
    • lets you quickly install and import libraries and packages to run in Python
  • Yarn
    • a package manager specifically for the Javscript Language
    • the go to tool for getting packages for Node.JS
  • npm
    • a package manager specifically for the JavaScript Language
    • the go to tool for getting packages for Node.JS

Web Development

Starting Out

  1. HTML - the "content" of a web page
  2. CSS - dictates the style and character of a web page
  3. JavaScript - high level, the dominant programming language of the web, makes webpages dynamic

More Advanced Stuff

Back-End Development: code that connects the web-page to a database, manages user connections, and powers the web application itself

Common Back-End Frameworks/Tools

  • JavaScript
    • Node.JS - JavaScript run-time environment that executes JavaScript code outside of a browser
    • Express - web application framework for Node.js, designed for building web applications and APIs
  • Python
    • Flask - micro web framework written in Python, easy to pick up
    • Django - model-view-template oriented, highly customizable (citrushack.com was built with this!)
    • .NET - a software framework optimized for building any kind application for Windows, developed by Microsoft

Front-End Development: the practice of converting data to graphical interface for user to view and interact with data through digital interaction using HTML, CSS and JavaScript

Common Front-End Frameworks/Tools (used in conjunction with vanilla HTML/CSS/JavaScript)

  • HTML/CSS/JS
    • Bootstrap - CSS/JS library that makes responsiveness between mobile and desktop web pages easy
    • Semantic UI - quickly build web pages with sleek, modern, and dynamically designed elements
    • Font Awesome - font and icon toolkit for simple yet effective icons and typography
    • jQuery - JavaScript library designed to simplify HTML DOM tree traversal and manipulation
  • pure JavaScript (all of which are extremely powerful and robust)
    • AngularJS - structural framework for dynamic web apps, good for single-page applications, maintained by Google
    • ReactJS - JavaScript library for building user interfaces, 'reacts' to user and dynamically changes the content of a web page, maintained by FaceBook
    • VueJS - open-source JavaScript library for building dynamic user interfaces, easy to pick up

Hardware Hacking 🔩 🔨

  1. Arduino IDE

Virtual/Augmented Reality

  1. Unity

    • a real-time 3D development platform
    • drag and drop static assets into your 3D scene
    • code dynamic elements events and elements using the C# language
  2. Oculus - Unity SDK

    • the official software development kit for Oculus Rift hardware within Unity
  3. VRTK - The All In One Virtual Reality Tool Kit for Unity

    • comes with integrated GearVR and OculusVR SDKs
    • prebuilt libraries for locomotion, object-interaction, clipping, and more

Mobile Development 📱

  1. React Native

    • build mobile apps in a React JS integrated environment
    • good for both Android and iOS applications
    • maintained by FaceBook
  2. Swift

    • for iOS app development
    • Xcode is the proprietary development environment
  3. Java

    • for Android app development
    • Android Studio is the recommended development environment
  4. Flutter

    • an open-source mobile application development framework
    • good for both Android and iOS applications
    • maintained by Google

Sponsors

Healthcare

About

A collection of useful resources for the Hackers of BioHack.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors