GithubHelp home page GithubHelp logo

theyosh / terrariumpi Goto Github PK

View Code? Open in Web Editor NEW
400.0 50.0 97.0 339.54 MB

Home automated terrarium/aquarium or other enclosed environment with a Raspberry Pi

Home Page: https://terrarium.theyosh.nl

License: GNU General Public License v3.0

Shell 2.16% Python 53.24% JavaScript 7.65% PHP 0.14% Ruby 0.07% Makefile 0.09% HTML 0.93% C++ 0.44% Svelte 34.52% SCSS 0.77%
raspberry-pi sensor terrarium humidity iot automation reptile aquarium temperature cooling

terrariumpi's Introduction

TerrariumPI 4.9.1

Latest release GitHub Release Date Translation status Docker Pulls Codacy Badge Code style: black code style: prettier

Software for cheap home automation of your reptile terrarium or any other enclosed environment. With this software you are able to control for example a terrarium so that the temperature and humidity is of a constant value. Controlling the temperature can be done with heat lights, external heating or cooling system. As long as there is one temperature sensor available the software is able to keep a constant temperature.

For humidity control there is support for a spraying system. The sprayer can be configured to spray for an X amount of seconds and there is a minimal period between two spray actions. Use at least one humidity sensors to get a constant humidity value. In order to lower the humidity you can add a dehumidifier.

The software is that flexible that there is no limit in amount of sensors, relay boards or door sensors. The usage can be endless. All power switches have support for timers to trigger based on a time pattern.

If you are using this software for your animals or plants, please post some pictures

Full documentation can be found at https://theyosh.github.io/TerrariumPI/

Contact https://matrix.to/#/#terrariumpi:theyosh.nl

Think off:

  • Terrarium (wet or dry)
  • Aquarium
  • Tanks with animals or plants
  • Greenhouse

And all this is controlled with a nice web interface with AdminLTE 3 based on Bootstrap 4 made interactive with Svelte 4.

Table of Contents

  1. Features
  2. Translations
  3. Installation
  4. Updating
  5. Hardware
    1. GPIO numbering
    2. New hardware
  6. Remote data
  7. Contributors
  8. Screenshots
  9. Testing
  10. About

Features

  • Controlling electronic devices like lights, sprayers, heating, cooling, water pump equipment etc
  • Support for dimming electronic devices
    • Manual dimming through web interface
    • Predefined on and off dimming durations
    • Predefined on and off dimming percentages
    • Predefined dimming steps for environment system (heater and cooler)
  • Support for timers in power switches and environment #72
    • Predefined start and stop times based on timer or weather
    • Predefined on and off durations in minutes
  • Support for Energenie USB, LAN and RF power switches EG-PM(s)2
  • Support for WeMo Wifi power switches
  • Support for Meross MSS425E Power Switches (Requires Python 3 setup)
  • Support for Sonoff remote power devices
  • Support for multiple type of sensors
    • Temperature
    • Humidity
    • Moisture
    • Conductivity
    • Distance
    • pH
    • Light intensity
    • UV A and B
    • Fertility
    • Volume
  • Support for webcams and native Raspberry Pi cam out of the box
    • Raspberry Pi cam can be streamed live with 6 seconds delay
    • Archiving images based on motion or time interval
  • Support for analog devices through a MCP3008
    • Support for PH probe SKU SEN0161
  • Support for MiFlora Bluetooth sensors
  • Open door detection. This can be used in different environment parts
  • Total power and water usage for costs calculation
  • Lights control based on sun rise and sun set or timers
  • Rain control based on humidity sensors and timers
  • Temperature control based on temperature sensors or timers
    • Variable day and night difference for min and max temperature
  • Water tank level control based on ultrasonic sound range sensors or volume sensors
  • Weather forecast from external source for lighting schema
  • Temperatures in Celsius or Fahrenheit
  • Distances in centimeters or inches
  • Alarm detections
  • Audio support through internal audio jack or USB sound cards #42
    • Create playlists (loop and repeat)
    • Volume control in the web interface
    • Uploading audio files through web interface
    • Audio meta data support (mediainfo)
  • Remote temperature and humidity sensors through HTTP(S) JSON API's. JSON Data format can be found on Remote data wiki.
  • Display support
    • LCD 16x2 or 20x4 screens either through I2C or Serial
    • OLED based on SSD1306
  • Calendar system when hardware is replacement and when new hardware needs to be installed
  • Notifications system. Custom messages for custom actions with use of variables in the messages
    • Get notifications through
      • Email
      • Display
      • Webhooks
    • Notifications for
      • Environment part low and high alarm
      • Sensor high and low measurements
      • Power switch toggle on and off
      • Open and close doors
      • System error and warning messages

It is currently controling my reptile terrarium since 2015! And my Madagascar Day Gecko is very happy with it!

Translations

The software has support for the following languages:

Translation status

Your language not in the list or not up to date? Create your own language translation

Installation

Base

The installation expects a Pi with working network and ssh. It is tested with Raspberry Pi OS Lite Legacy. Desktop images will not work. Installation seems to work, but it will not work stable. So make sure you download the correct image for the Pi. It is possible to use USB or SSD drives to speed things up: https://www.tomshardware.com/how-to/boot-raspberry-pi-4-usb

Docker

There is a Docker image which can be used instead of the source code. This should make the installation a bit more easier. More information can be found at: https://theyosh.github.io/TerrariumPI/install/#docker

You can skip the manual installation part.

Manual

  1. Get a working Raspberry Pi and login as user 'pi'
    ssh pi@[raspberry_ip]
  2. Install git
    sudo apt -y install git
  3. Clone this repository and submodules!
    git clone --depth 1 https://github.com/theyosh/TerrariumPI.git
  4. Enter the new TerrariumPI folder
    cd TerrariumPI
  5. Run the installer script and wait
    sudo ./install.sh
  6. Reboot Raspberry PI to get all the needed modules loaded
    sudo reboot (if done manual)
  7. Go to the web interface at http://[raspberry_ip]:8090 (login: admin/password)

All needed options and modules are setup by the installer script. This means that I2C and 1Wire overlay are enabled by default.

Make sure that your Pi is secured when you put it to the Internet. Would be a shame if TerrariumPI gets next victim of 'A smart fish tank left a casino vulnerable to hackers' :P

Updating

This updating is based on that the software is installed with the steps in the Installation above. When updating between release versions it will take more time due to database updates and cleanups. This can be seen in the log file.

Docker

Stop the running container and pull the new image. Then you can start the container again.

Manual

  1. Get a working Raspberry Pi and login as user 'pi'
    ssh pi@[raspberry_ip]
  2. Enter the TerrariumPI folder
    cd TerrariumPI
  3. Update the new code with git
    git pull
  4. Re-run the installation script in order to update software dependencies
    sudo ./install.sh
  5. Restart TerrariumPI: sudo service terrariumpi restart

Now clear your browser cache and reload the web interface. A brand new version should be running.

Hardware

This software requires a Raspberry Pi and some extra hardware in order to run and work. The bare minimum and tested hardware is

  • Raspberry PI with at least 4GB SD card running Raspberry Pi OS Lite.
    • Zero (Should work/At own risk/limited support)
    • Zero 2W (Should work/At own risk/limited support)
    • Pi 2 (Should work/At own risk/limited support)
    • Pi 3 (Works/full support)
    • Pi 4 (Works/full support)
    • Pi 5 does NOT work (Due to changes in the hardware on the Pi)
  • Power relay board
    • USB versions (Serial and Bitbang)
    • GPIO versions
    • PWM Dimmer versions
  • Temperature/humidity/ultrasonic/PH sensors DHT11, DHT22, AM2303, DS1820, HIH4000, HC-SR04, SEN0161, etc through

Full list of supported hardware

GPIO numbering

All hardware that connects to the GPIO pins use Physical GPIO numbering (1 - 40). The software will translate it to BCM if needed for a supported device or sensor. More information about GPIO pin numbering

For the analog devices use numbers of the channel on the analog device which is from 0 to 7 (8 channels). Also the software expect the analog MCP3008 on GPIO ports 19,21,23,24 physical (default). More information about GPIO pin numbering

New hardware

If there is some other hardware which is not working with TerrariumPI, open an issue on Github and we will try to support it. We can only test it on a Raspberry PI 4.

Remote data

It is possible to use external sensor data that is available through HTTP(S) in JSON format. This way you can combine multiple Raspberry Pi's with TerrariumPI running to one single system. By using multiple Raspberry PI's you can cover a bigger area. But there are limitations.

Currently it is READONLY. So you can read out remote sensors and switches but you cannot control the remote switches. But this way you can combine the power switches total costs and power usage.

more information is here: Remote data wiki

Contributors

GitHub Contributors Image

Screenshots

(made on a very big screen :P )

Dashboard

TerrariumPI 4.0 Dashboard screenshot

Sensors

TerrariumPI 4.0 Sensors temperature list screenshot TerrariumPI 4.0 Sensors humidity list screenshot TerrariumPI 4.0 Sensors settings screenshot

Relays

TerrariumPI 4.0 Relays list screenshot TerrariumPI 4.0 Relays settings screenshot

Enclosure setup

TerrariumPI 4.0 Enclosure list screenshot TerrariumPI 4.0 Enclosure setup screenshot

Area setup

TerrariumPI 4.0 Area Lighting setup screenshot TerrariumPI 4.0 Area Humidity setup screenshot

System settings

TerrariumPI 4.0 System setup screenshot

MOTD (Message Of The Day)

TerrariumPI 4.0 MOTD screenshot

More screenshots can be found here

Testing

Free tested with BrowserStack for open source BrowserStack

About

A live version is running at: https://terrarium.theyosh.nl/index.html. Go to 'Help' menu for more information about used hardware, software and how to setup.

terrariumpi's People

Contributors

93420 avatar alec-pinson avatar bfonn avatar cmonicob avatar cnelsonsic avatar dependabot[bot] avatar esev avatar fabi2803 avatar fossabot avatar fujexo avatar kahuwi14 avatar kebs19 avatar killwater avatar kwiatekp avatar luke-gto avatar luke5sky avatar manolof avatar marcnr1984 avatar marvv90 avatar nke69 avatar npinter avatar ntfd0 avatar penzoiders avatar sticchio2001 avatar swekley avatar theyosh avatar tomladder avatar tvstatic avatar weblate avatar werer00b avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

terrariumpi's Issues

A way to avoid chrome caching issues

I know I notified this in another issue #25, but maybe to keep things clear it's better to track it on a new issue.

I found that when using chrome (or any other heavy caching browser) if you configure a new switch or a new sensor it will not appear in the "status" tab for sensors or switches until browser cache does not expire.

I found a workaround using the method of "hidden refresh menu" stated in this superuser.com post https://superuser.com/a/722548 "Empty Cache and Hard Reload"

this when done completely solve the issue. Since the whole application is not that heavy it may be a good idea to automatically drop caches at page load (don't know if it's possible), or to set a cache expiry to a very low level.

@theyosh do you think it's something that can be set in gentelella?

Non-functioning sensors

Hi there,
unfortunately I have to ask you for help once more. Without much of a changes in raspberry running TerrariumPI I started to experience problems with sensor reading. Firstly wihout problems, than one DHT11 sensor started to show unrational numbers and I deleted it from the sensor list. Now, after one of reboots none of thw two remaining DHT 22 sensors give any readings. after screen -r command it prints :

kkk'! Got invalid value 66.900002% in 5.57930 seconds
2017-08-29 13:08:44,282 - ERROR - terrariumSensor - Error updating dht22 humidity sensor 'llllm' with error: float() argument must be a string or a number
2017-08-29 13:09:15,374 - WARNING - terrariumSensor - Error on humidity sensor 'kkk'! Got invalid value 67.199997% in 30.83608 seconds
2017-08-29 13:09:52,857 - WARNING - terrariumSensor - Error on humidity sensor 'llllm'! Got invalid value 3309.100098% in 0.52479 seconds
2017-08-29 13:09:53,648 - WARNING - terrariumSensor - Error on humidity sensor 'kkk'! Got invalid value 69.099998% in 0.52604 seconds
2017-08-29 13:11:23,673 - ERROR - terrariumSensor - Error updating dht22 humidity sensor 'llllm' with error: float() argument must be a string or a number
2017-08-29 13:11:27,027 - WARNING - terrariumSensor - Error on humidity sensor 'kkk'! Got invalid value 3314.800049% in 3.05159 seconds
2017-08-29 13:12:30,035 - WARNING - terrariumSensor - Error on humidity sensor 'llllm'! Got invalid value 77.699997% in 10.62761 seconds

There are now two DHT22 sensors (strangely named I admit), both with 4,7 resistor, connection cables intact.
The values vary - I don´t think that the value near 70% must be wrong and doesnt seem to me as "invalid"
The values above 3000 - well I read it could be caused by voltage - sensors are connecter to 3,3V and some say that 5V makes it dissappear, what do you think?

Thanks for your reply

Relay Switch dont stay "ON"

Hello,
First a BIG thanx for all your work.
I just began to use it (or..."try" to be exact) yesterday.
The sensors are working, the switch is configured and working when i push manually on the interface button. But after a few seconds, it switch OFF ;-(
And i configured the environment to switch ON heater with sensors...and nothing happend...when the low temp is reached, the switch dont turn ON.
Any ideas to help a newbie ? ;-)

Cannot change C to F with chrome

Great software for raspberry! Thank You for providing it.
I am trying change the C to F on the weather section and it will not commit the change. Is there another place that I can change it?

Thanks again

Adding support for GPIO power relays

Requested in #1 for support for other temperature and humidity sensors and power relay switches

This issue will address the power switch request only. The sensors request will be fixed in a different issue #2 .

This requires a different approach for adding switches. So the interface will get an 'add' button to add new switch. Also there will be a new extra setting which is the 'bus' on which the switch is. That will be for now: usb and gpio.

Example: http://www.ebay.co.uk/itm/5V-1-2-4-8-Channel-Relay-Board-Module-for-Arduino-Raspberry-Pi-ARM-AVR-DSP-PIC/252051910091

username

Hi there,
sorry to bother, I am new to the commuity and I got impressed by the project TerrariumPI. I got everything nneeded and started new terrarium. I got through the istallation and the web interface seems working ok. But whenever I try to add a sensor etc. it requires a username and password - no password I have seems to work, can you help me? your project has just all I dream of, i don´t want to stop now..thank you...

Translate

What can I do if I can not find all words or phrases in Poedit and I can not translate them? Thx

Cant change language

I installed the latest update and now I can't change language to English.
There is no options pin the Settings page to change language.

Install help with DS1820

Hi, people can someone help me as I install the DS1820 on the raspberry, my Rasp does not recognize them.

Lock and Logout buttons are not working.

If you press Lock or Logout buttons in the left panel interface nothing will happen and the user remain authenticated (need to clean browser cache + cookies to reset permissions)

tested using 2.7.1

Suggestion: Adding 'Cooler' under System environments

Im adding another suggestion, I hope Im not to annoying :-)
I love TerrariumPI, its great and has so much usefullness and power.

Under 'System environment' there are options to add a heater. It would be useful to be able to add a cooler (turn on fan, cooling device etc.with a relay/switch) as well. If a certain max temperature is reached it would be good to have the cooler to automatically turn on until a desirable temperature is reached. This option for the heater to turn on/off at a minimum temperature to raise the temperature to a given value could also be useful.

Offline part 2

32316061-eec6cb4a-bfae-11e7-9e8f-e4df83d7d5e8

Sorry, I have the same problem and all the tips so far have not helped. Can you fix this?

Sensor & Relay suggestions

Hi
First of all I would like to give huge kudos to you. This is a really neat Terrarium controller that fits my need :-)
I would like to suggest an enhancement though; it would be great if one could add one or more DHT22 Temp & Humidity sensors directly to a GPIO and control in from TerrariumPI, the same goes for a standard relay board which can be controlled from one GPIO on the Pi.
Thanks for a great job

Regards
Petter

A new problem with the interface

unbenannt

Since today I am no longer on my interface.
Also, not with the help of Wiki, the only thing I have changed is the alarm of the temperature from 25 to 24.5 degrees. I have again entered everything at 25 degrees, but it does not work. Can you help me?

Setting.cfg
TerrariumPI.zip

It will also always closed my screen automatically

Trouble in configuring a DHT22

I've configured a DHT22 sensor using pins 17 (3.3v) 18 (gpio) 20 (ground).
configured through GUI and did not come up with a valid monitoring.

selezione_872

this is what is thrown at screen -r

2017-09-24 09:50:02,587 - ERROR - terrariumSensor - Error updating dht22 humidity sensor '' with error: float() argument must be a string or a number
2017-09-24 09:50:47,848 - ERROR - terrariumSensor - Error updating dht22 humidity sensor 'DHT22' with error: float() argument must be a string or a number

the sensor is one of these with little PCB with embedded resistor convenient pins for GPIO hook up.
https://www.amazon.it/gp/product/B01DB8JH4M/ref=oh_aui_detailpage_o02_s00?ie=UTF8&psc=1

To get the server working again I had to remove the sensor configuration. Upon a CTRL+C restart in the screen session I got this output:

  File "/usr/local/lib/python2.7/dist-packages/gevent/greenlet.py", line 536, in run
    result = self._run(*self.args, **self.kwargs)
  File "/home/pi/TerrariumPI/terrariumEngine.py", line 211, in __engine_loop
    self.sensors[sensorid].update()
  File "/home/pi/TerrariumPI/terrariumSensor.py", line 207, in update
    humidity, temperature = self.sensor.read_retry(terrariumSensor.valid_dht_sensors[self.get_hardware_type()], self.sensor_address)
  File "build/bdist.linux-armv7l/egg/Adafruit_DHT/common.py", line 94, in read_retry
    humidity, temperature = read(sensor, pin, platform)
  File "build/bdist.linux-armv7l/egg/Adafruit_DHT/common.py", line 81, in read
    return platform.read(sensor, pin)
  File "build/bdist.linux-armv7l/egg/Adafruit_DHT/Raspberry_Pi_2.py", line 29, in read
    result, humidity, temp = driver.read(sensor, int(pin))

any clues?

Question for extending the system environment

Hi Theyosh, again a "suggestion or idea".
Is it possible to customize the system environment by the user, for example: not only sprayers, light, heating, air conditioning but also other things like e.g. Fan 1, fan 2, or something else. As a box with which you can design your own system environment, with options for what are currently possible (with light disable, with door open disable, etc. Because currently the user has no possibility to set his own system environment. Do you understand what I mean ( unfortunately the translation is not good).

dataplicity

Hi there,
I have more of a question than issue, I tried tunneling and controlling my PI through dataplicity, hoping that I will be able to manage the terrariumPI software from anywhere. I set up port to 80 in settings as it is the only port dataplicity is able to wormhole, but there seems to be a problem, no response, do you have a suggestion where to start if I wanted to make it work? thanks a lot...

Request for day/night sound functionality.

Animal enrichment is very important and most tropical animals natural habitats are saturated with sounds. Sounds make animals in terrariums more active and inquisitive.

I would like to request the following functionality:

  1. Time of day. Should be adjustable by user preferences. For example: predawn 4-6, dawn 6-9, day 9-18, evening 18-22, night 22-4. Time of day and time frames should be flexible for better tuning.
  2. Sound files of natural animal habitat should be uploaded to Raspberry Pi, playlists created for each part of day and played randomly and indefinitely(until the time frame is up)
  3. Volume adjustment in % (lower for evening/night, louder for day)

I currently have this functionality achieved with Android phone and Tasker app. Sound files are stored in appropriate directories and Tasker plays them according to automation tasks set in app. Please let me know and thank you for your software.

Offline

Hi,
i installed TerrariumPi few days ago. Everything worked perfect, but after several restarts i recieved offline status and cant switch to online. Can you help me pls? thank you
image

GPIO switches reverse state

I'm using a 8 relay array board over GPIO, VCC and GND wired to the raspberry itself.
normal GPIO numbers used.

Switches are working but in the opposite state: TerrariumPi shows blue status but te led on the relay board is switched on, viceversa when I turn green the switch on TerrariumPi GUI it powers off the relay.

GPIO pointing is ok, status is opposite of expected.

Even on reboot: it starts with all relays on (then, as I've set two relays on the light timer env. rule, it applies opposite rule: off instead of on at given hour)

let me know how can I help to debug these issues.

And let me thank you for the great project: I looked for something simple and cool like this for years and this is the absolute best project I've encountered so far. deployed istantly.

Deutsch

Hi, is it possible to change the whole interface in German?

Switch off heating with door control

Is it possible to switch off the heating with the door sensor when the door is open and when the door is closed again switch it on again (as with the sprayer).

Problems with relay card and DHT 22

Hi, I have a problem with my Relaiskarte (8x relay), every time I switch on one or all relays over the interface, they are automatically switched off after approx. 30 sec from the interface without which I do something or enter, my second problem is that I only one of three DHT22 sensors to run, one shows me correct values the others are not recognized, can it be that there is a problem with the 5V GPIO? Because I have all three DHT22 sensors on a 5V GPIO with a splitt cable. Thanks for your help!

Question regarding the webcam location

When I am entering the webcam and reffering to a device how to I type it in for the location V4L device 004 ? My webcam is device 004 on the pi through usb

Adding support for DHT11, DHT22 and AM2302

Requested in #1 for support for other temperature and humidity sensors and power relay switches

This issue will address the sensor request only. The switch request will be fixed in a different issue #3.

This requires a different approach for adding sensors. GPIO sensors are not scanable during startup. So the interface will get an 'add' button to add new sensors. Also there will be a new extra setting which is the 'bus' on which the sensor is. That will be for now: 1wire and gpio

For adding 1 sensor, you have to make two actions in the web interface. Every sensor is either temperature of humidity. So this has to be specified per sensor. And when a GPIO or 1Wire sensor does both it needs to be entered twice

Heating control via sensor temperature

How is it possible to regulate my heating when, for example, 24 degrees. Do I have to adjust this somewhere? The heater must know that they turn on at 23.5 degrees and turn off at 24.5 degrees, but this is only a sensor but unfortunately I have not found anything yet.

AM2302 question

Hi, you have in your interface the selection DHT22 and AM2302, are not they both the same types?

Cant add sensors & turn on/off relays

Made a new fresh install of latest commit to try out the relay function for GPIO connected relays.
But now I can't add any DHT22 sensors at the settings page for sensors, when submitting the sensor is not saved.
Further, when I add a relay it is not possible to turn on/off the relay, when clicking the relay button nothing happens.

Regards
Pete

Slow interface

Hi, can anyone explain why the interface loads so slowly? The cache is empty ...

Cannot add switches

Hi, my system collapsed and I decided to reinstall.
So there is a new lite version and fresh install. Through the webinterface I can add sensors, use the system, but the switch doesn´t save. GPIO is ok, just doesnt save..

debug shows error - terrariumswitch - pigpiod process is not running...

could it be the problem?

thanks a lot!

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.