Giter Club home page Giter Club logo

interactive-book's Introduction

Interactive-Book

download

Slack

Join Mailing List

About the project

The aim of this project is to create an online interactive guide for digital logic design. The primary goal is to develop an open source book with quality content which teaches digital logic design. It will enable students to learn digital design by interacting with circuits,truth table and other interactive elements as they proceed through the book.The professors and students all over the world can read and contribute to the same.

As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.

CircuitVerse

CircuitVerse is a product developed by students at IIIT-Bangalore. It aims to provide a platform where circuits can be designed and simulated using a graphical user interface. While users can design complete CPU implementations within the simulator, the software is designed primarily for educational use. CircuitVerse is an opensource project with an active community.

Clone this repo!

First things first. Make a local clone of this repo so you can work on it from your own computer.

Install, and Serve!

This website was built using Jekyll. So if you are familiar with this and already have Jekyll installed, you can scroll past the instructions we have below.

Setting up your development environment

To do this, you are going to need a computer capable of running Ruby - while Mac OSX or Linux tends to be easiest, plenty of people do Ruby development on Windows as well. If you're not on Mac OSX, you will likely need to install Ruby yourself.

Install Gems and Serving the Website

The required gems for this project are Bundler and Jekyll. Once you have Ruby installed, open your terminal, cd to the local repo directory, and run the following commands:

gem install jekyll
gem install bundle

This will install Bundler and Jekyll. If you have any errors, check to be sure you have installed Ruby correctly.

Next, install the projects dependencies and serve:

bundle install
bundle exec jekyll serve

This should start serving the website on http://0.0.0.0:4000/ - simply make changes to the source code and can see your changes live at that URL!

Contribute!

We are open to all contributions by anyone, and we encourage all new members to create join our slack and discord channel. Here are links to our:

Slack

Discord

  • This is an official fan communication channel. Thanks to @jbox1 for this initiative.

Contributors

Thanks to everyone who has contributed to the Interactive Book so far! Image of contributors

Overview

The Interactive book have two components in it.

  1. Content
  2. Interactions

Content

It include's quality content which would be gathered from various books (primarily from ‘​Digital Design​’ by ​Morris Mano as its copyright has expired and is in public domain) and online material. Basic notes have already been prepared to reference the aforementioned book and are attached in the table below.

Interactions

There would be two types of Interactions.

  1. Circuit Interactions- This include designing optimal circuits which would help to clearly understand the logic. The student would be able to clearly detect the variation of output with the change in input via these circuits. With each Interaction module, there would be a set of instructions that would guide the user to see the desired changes.
  2. Module Specific Interactions- This include interaction which are designed for individual module like kmap simulator , truth table generatoretc.

However, we do have some rules and general guidelines we would like you to follow:

  1. Everything must start with an issue...

    • Issues should have useful, concise titles and enough of a description to understand the scope of the issue.
  2. Branches should link to individual issues, and be named using consistent syntax consisting of "issue type", "issue number", and an descriptive title (using hyphens for spaces, and all lower case). Examples:

    • bug/#123-abbreviated-issue-title
    • feature/#123-abbreviated-issue-title
    • enhancement/#123-abbreviated-issue-title
  3. Pull requests may not be merged by the requester. Ever.

  4. Once a pull request is merged, the branch should be removed.

  5. Always follow good Github etiquette. Several helpful reads on the topic:

Code Structure

Jekyll is, at its core, a text transformation engine. The concept behind the system is this: you give it text written in your favorite markup language, be that Markdown, Textile, or just plain HTML, and it churns that through a layout or a series of layout files. Throughout that process you can tweak how you want the site URLs to look, what data gets displayed in the layout, and more. This is all done through editing text files; the static web site is the final product.The structure of Interactive Book looks something like this:

├── _config.yml
├── _data
|   └── members.yml
├── _drafts
|   ├── begin-with-the-crazy-ideas.md
|   └── on-simplicity-in-technology.md
├── _includes(contains module specific interactions along with their respective css)
|   ├── binary.html
|   └── gates.html
├── _layouts(includes layout types)
|   ├── default.html
|   └── home.html
├── assets
|   ├── css(contains css of book's layout)
|   └── js(contains all the javascript required for module specific intteractions as well as book layout)
|   └── images(contains all the images required in the project)
├── docs(contains all the the modules)
|   ├── Combinational
|   |   ├── full_adder.md
|   |   └── half_adder.md
|   └── binary.md
├── _site
├── .jekyll-metadata
└── index.md 

Plugins used

  • jekyll-seo-tag: A Jekyll plugin to add metadata tags for search engines and social networks to better index and display your site's content.
  • jekyll-github-metadata: Jekyll plugin to propagate the site.github namespace and set default values for use with GitHub Pages.
  • jekyll-tagging: Jekyll plugin to automatically generate a tag cloud and tag pages.
  • jekyll-admin: A Jekyll plugin that provides users with a traditional CMS-style graphical interface to author content and administer Jekyll sites.

Where to get support

If you're looking for support for Jekyll, there are a lot of options:

There are a bunch of helpful community members on these services that should be willing to point you in the right direction.

Reminder: Jekyll's issue tracker is not a support forum.

In addition to these plugins Interactive book also inherit's all the plugins used in Just-the-Docs

Jekyllconf

Watch videos from members of the Jekyll community speak about interesting use cases, tricks they’ve learned or meta Jekyll topics.


Interactive-Book is © 2019 by Aman Singla (Gsoc19 project)

interactive-book's People

Contributors

amansingla97 avatar ananthavijay avatar samriddhimishra avatar mohit-003 avatar joshheng avatar satu0king avatar dependabot[bot] avatar aayushgupta05 avatar tachyons avatar vishruth-s avatar vedangj044 avatar criticic avatar richard-delorenzi avatar numberc avatar ericsheng495 avatar ankitkataria avatar codesarthak avatar imgbotapp avatar jyothsnaashok avatar nitin10s avatar rtwksai avatar junron avatar namannarula avatar udbhav-s avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.