-
Notifications
You must be signed in to change notification settings - Fork 195
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #474 from danielluehr/GSoD2020
GSoD2020 new Interactive Book structure
- Loading branch information
Showing
181 changed files
with
4,800 additions
and
96 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
# Contributor Covenant Code of Conduct | ||
|
||
## Our Pledge | ||
|
||
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. | ||
|
||
## Our Standards | ||
|
||
Examples of behavior that contributes to creating a positive environment include: | ||
|
||
* Using welcoming and inclusive language | ||
* Being respectful of differing viewpoints and experiences | ||
* Gracefully accepting constructive criticism | ||
* Focusing on what is best for the community | ||
* Showing empathy towards other community members | ||
|
||
Examples of unacceptable behavior by participants include: | ||
|
||
* The use of sexualized language or imagery and unwelcome sexual attention or advances | ||
* Trolling, insulting/derogatory comments, and personal or political attacks | ||
* Public or private harassment | ||
* Publishing others' private information, such as a physical or electronic address, without explicit permission | ||
* Other conduct which could reasonably be considered inappropriate in a professional setting | ||
|
||
## Our Responsibilities | ||
|
||
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. | ||
|
||
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. | ||
|
||
## Scope | ||
|
||
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. | ||
|
||
## Enforcement | ||
|
||
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at patrick.marsceill@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. | ||
|
||
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. | ||
|
||
## Attribution | ||
|
||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] | ||
|
||
[homepage]: http://contributor-covenant.org | ||
[version]: http://contributor-covenant.org/version/1/4/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,191 @@ | ||
|
||
# Interactive-Book | ||
|
||
|
||
![download](https://github.com/CircuitVerse/CircuitVerse/raw/master/public/img/cvlogo.svg?sanitize=true) | ||
|
||
[![Slack](https://img.shields.io/badge/chat-on_slack-purple.svg?style=for-the-badge&logo=slack)](https://join.slack.com/t/circuitverse-team/shared_invite/enQtNjc4MzcyNDE5OTA3LTdjYTM5NjFiZWZlZGI2MmU1MmYzYzczNmZlZDg5MjYxYmQ4ODRjMjQxM2UyMWI5ODUzODQzMDU2ZDEzNjI4NmE) | ||
|
||
[Join Mailing List](https://circuitverse.us20.list-manage.com/subscribe?u=89207abda49deef3ba56f1411&id=29473194d6) | ||
|
||
|
||
## 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 sourcebook with quality content that 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](https://circuitverse.org) 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. | ||
|
||
``` | ||
git clone https://github.com/CircuitVerse/Interactive-Book.git | ||
cd Interactive-Book | ||
``` | ||
|
||
## Install, and Serve! | ||
|
||
This website was built using [Jekyll](https://jekyllrb.com/). 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](http://bundler.io/) and [Jekyll](https://jekyllrb.com/). 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](https://img.shields.io/badge/chat-on_slack-purple.svg?style=for-the-badge&logo=slack)](https://join.slack.com/t/circuitverse-team/shared_invite/enQtNjc4MzcyNDE5OTA3LTdjYTM5NjFiZWZlZGI2MmU1MmYzYzczNmZlZDg5MjYxYmQ4ODRjMjQxM2UyMWI5ODUzODQzMDU2ZDEzNjI4NmE) | ||
|
||
|
||
## Contributors | ||
Thanks to everyone who has contributed to the Interactive Book so far! | ||
<a href="https://github.com/CircuitVerse/Interactive-Book/graphs/contributors"><img src="https://contributors-img.firebaseapp.com/image?repo=CircuitVerse/Interactive-Book" alt="Image of contributors"></a> | ||
|
||
|
||
## Overview | ||
The Interactive book has two components in it. | ||
1. Content | ||
2. Interactions | ||
|
||
<div style="text-align:center"><img src="/assets/images/ib.png" /></div> | ||
|
||
### Content | ||
It includes quality content that would be gathered from various books (primarily from ‘Digital Design’ by Morris Mano as its copyright has expired and is in the public domain) and online material. Basic notes have already been prepared to reference the aforementioned book and are attached to the table below. | ||
|
||
### Interactions | ||
There would be two types of Interactions. | ||
|
||
1. **Circuit Interactions-** This includes 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 includes interaction that is designed for an individual module like kmap simulator, truth table generator, etc. | ||
|
||
**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 a 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: | ||
* [Use Github keywords to auto-link close issues](https://help.github.com/articles/closing-issues-via-commit-messages/) | ||
* [Git - Contributing to a Project](http://git-scm.com/book/ch5-2.html) | ||
* [Who-T - On Commit Messages](http://who-t.blogspot.com/2009/12/on-commit-messages.html) | ||
|
||
|
||
## 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: | ||
<pre> | ||
├── _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 interactions as well as book layout) | ||
| └── images(contains all the images required in the project) | ||
├── docs(contains all the modules) | ||
| ├── Combinational | ||
| | ├── full_adder.md | ||
| | └── half_adder.md | ||
| └── binary.md | ||
├── _site | ||
├── .jekyll-metadata | ||
└── index.md | ||
</pre> | ||
|
||
## Pop Quizzes | ||
CircuitVerse has a custom pop quiz system to reinforce learning at the end of a page. This is in the form of a few multi-choice or true/false questions. | ||
|
||
### Configuration | ||
The quiz should be at the end of a page and is initialised with `{:.quiz}`. Questions are then added in a list, with correct answers being numbered subelements and incorrect answers being unordered subelements. Please see below for an example: | ||
```markdown | ||
{:.quiz} | ||
1. Example question | ||
1. Correct answer | ||
* Incorrect answer | ||
2. What is 1 + 1? | ||
* 1 | ||
1. 2 | ||
* 3 | ||
``` | ||
Note that answers must be text only and not contain any other formatting. | ||
|
||
|
||
## Plugins used | ||
|
||
* [jekyll-seo-tag](https://github.com/jekyll/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](https://github.com/jekyll/github-metadata): | ||
Jekyll plugin to propagate the `site.github` namespace and set default values for use with GitHub Pages. | ||
* [jekyll-tagging](https://github.com/pattex/jekyll-tagging): | ||
Jekyll plugin to automatically generate a tag cloud and tag pages. | ||
* [jekyll-admin](https://github.com/jekyll/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: | ||
|
||
* Read [Jekyll Documentation](https://jekyllrb.com/docs/) | ||
* Read [DigitalOcean Jekyll Guide](https://www.digitalocean.com/community/tutorials/how-to-set-up-a-jekyll-development-site-on-ubuntu-16-04) | ||
* If you have a question about using Jekyll, start a discussion on [the Jekyll Forum](https://talk.jekyllrb.com/) or [StackOverflow](https://stackoverflow.com/questions/tagged/jekyll) | ||
* Chat with slackers — Join [slack channel](https://join.slack.com/t/circuitverse-team/shared_invite/enQtNjc4MzcyNDE5OTA3LTdjYTM5NjFiZWZlZGI2MmU1MmYzYzczNmZlZDg5MjYxYmQ4ODRjMjQxM2UyMWI5ODUzODQzMDU2ZDEzNjI4NmE) | ||
|
||
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](https://github.com/pmarsceill/just-the-docs) | ||
## Jekyllconf | ||
|
||
[Watch videos](https://jekyllrb.com/jekyllconf/) from members of the Jekyll community speak about interesting use cases, tricks they’ve learned, or meta Jekyll topics. | ||
|
||
|
||
--- | ||
### Create, Contribute, Learn, and succeed with CircuitVerse!!! | ||
|
||
Interactive-Book is © 2020 by [CircuitVerse](https://circuitverse.org/) | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
<div id="container"> | ||
<div id="binary"> | ||
<div class="binary_heading"><div class="binary_heading_text">Binary</div></div> | ||
<div class="column"><div class="column_heading">128</div><div id="7c" class="bit" onClick="toggle_bitc(7);">0</div></div> | ||
<div class="column"><div class="column_heading">64</div><div id="6c" class="bit" onClick="toggle_bitc(6);">0</div></div> | ||
<div class="column"><div class="column_heading">32</div><div id="5c" class="bit" onClick="toggle_bitc(5);">0</div></div> | ||
<div class="column"><div class="column_heading">16</div><div id="4c" class="bit" onClick="toggle_bitc(4);">0</div></div> | ||
<div class="column"><div class="column_heading">8</div><div id="3c" class="bit" onClick="toggle_bitc(3);">0</div></div> | ||
<div class="column"><div class="column_heading">4</div><div id="2c" class="bit" onClick="toggle_bitc(2);">0</div></div> | ||
<div class="column"><div class="column_heading">2</div><div id="1c" class="bit" onClick="toggle_bitc(1);">0</div></div> | ||
<div class="column"><div class="column_heading">1</div><div id="0c" class="bit" onClick="toggle_bitc(0);">0</div></div> | ||
<div class="column result"><div class="column_heading">Decimal</div><div id="decimal1" class="bit">0</div></div> | ||
</div> | ||
</div> | ||
<style> | ||
#binary { | ||
font-family: Arial, Helvetica, sans-serif; | ||
width: 100%; | ||
display: flex; | ||
justify-content: center; | ||
border-radius: 5px; | ||
overflow: hidden; | ||
} | ||
.column { | ||
display: flex; | ||
flex-direction: column; | ||
align-items: center; | ||
justify-content: center; | ||
flex: 1.2; | ||
text-align: center; | ||
} | ||
.column_heading { | ||
width: 100%; | ||
background-color: #302d36 ; | ||
color: #00e8b3; | ||
} | ||
.bit { | ||
width: 100%; | ||
padding: 10px 0; | ||
cursor: pointer; | ||
font-size: 1.5em; | ||
border-right: thin solid #dcdcdc; | ||
background-color: #f1f1f1; | ||
color: #111111; | ||
} | ||
.bit:hover { | ||
background-color: #f0fff0; | ||
} | ||
/* For Side Heading: "Binary" */ | ||
.binary_heading { | ||
background-color: #302d36; | ||
color:#00e8b3; | ||
display: flex; | ||
align-items: center; | ||
justify-content: center; | ||
} | ||
.binary_heading_text { | ||
/* To rotate the text sideways */ | ||
writing-mode:vertical-rl; | ||
transform:scale(-1); | ||
} | ||
/* For Result Section */ | ||
.result { | ||
flex: 2; | ||
/* To disable any mouse event including click, hover */ | ||
pointer-events: none; | ||
} | ||
.result .bit { | ||
background: rgba(90, 239, 158, 1); | ||
border-right: none ; | ||
} | ||
/* Extra Tweaks */ | ||
.column, .binary_heading { | ||
/* To disable mouse selection */ | ||
-moz-user-select: none; | ||
-webkit-user-select: none; | ||
-webkit-touch-callout: none; | ||
} | ||
</style> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
<!-- -*- engine:django -*- --> | ||
{% assign pages_list = site.pages %} | ||
{% if page.has_children == true %} | ||
<ul> | ||
{%- assign children_list = pages_list | where: "parent", page.title | where: "grand_parent", page.parent | where: "cvib_level", "basic" -%} | ||
{% assign children_list_size = children_list | size %} | ||
{% if children_list_size > 0 %} | ||
<li><ul>Basic level | ||
{% for child in children_list %} | ||
<li> | ||
<a href="{{child.url | absolute_url }}">{{ child.title }}</a> | ||
{% if child.summary %} - {{ child.summary }}{% endif %} | ||
</li> | ||
{% endfor %} | ||
</ul></li> | ||
{% endif %} | ||
{%- assign children_list = pages_list | where: "parent", page.title | where: "grand_parent", page.parent | where: "cvib_level", "medium" -%} | ||
{% assign children_list_size = children_list | size %} | ||
{% if children_list_size > 0 %} | ||
<li><ul>Medium level | ||
{% for child in children_list %} | ||
<li> | ||
<a href="{{child.url | absolute_url }}">{{ child.title }}</a> | ||
{% if child.summary %} - {{ child.summary }}{% endif %} | ||
</li> | ||
{% endfor %} | ||
</ul></li> | ||
{% endif %} | ||
{%- assign children_list = pages_list | where: "parent", page.title | where: "grand_parent", page.parent | where: "cvib_level", "advanced" -%} | ||
{% assign children_list_size = children_list | size %} | ||
{% if children_list_size > 0 %} | ||
<li><ul>Advanced level | ||
{% for child in children_list %} | ||
<li> | ||
<a href="{{child.url | absolute_url }}">{{ child.title }}</a> | ||
{% if child.summary %} - {{ child.summary }}{% endif %} | ||
</li> | ||
{% endfor %} | ||
</ul></li> | ||
{% endif %} | ||
</ul> | ||
{% endif %} |
Oops, something went wrong.