GithubHelp home page GithubHelp logo

yellowtree / geoip-detect Goto Github PK

View Code? Open in Web Editor NEW
162.0 12.0 38.0 40.77 MB

Wordpress plugin "Geolocation IP Detection": Provides geographic information detected by an IP adress.

Home Page: http://wordpress.org/plugins/geoip-detect/

License: GNU General Public License v3.0

Shell 2.04% PHP 91.19% JavaScript 6.77%
maxmind wordpress php geoip-api maxmind-database

geoip-detect's People

Contributors

abidhahmed avatar alexmaughan avatar benjaminpick avatar ciderpunx avatar dependabot[bot] avatar dynaggelos avatar fabacab avatar jakejackson10 avatar jj-dev avatar joshuadavidnelson avatar mickrip avatar renovate-bot avatar renovate[bot] avatar snyk-bot avatar yavormilchev 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

geoip-detect's Issues

ISO3 Support

Is there any support (or plan to support) ISO3 (3-digit) country codes? I know I can get the data from country.io but it would be nice to have it built into the plugin.

Not detecting user's IP when user is not logged in to WordPress site

Hi all,

The plugin is working fine when I am logged in to my wordpress website, and it is able to detect my IP as well as location country.

However when trying to surf the site when I'm not logged in or via private browsing, the plugin is unable to detect my IP address. Hence it retrieves the (I assume) default value which is the IP address of the server.

Could someone help me with this issue please?

Thank you.

External IP of this server error

I had an issue in developpment with the external ip detection.
I set the field in the setting so this work now but I don't understand why the plugin need this information since I'm using the local database Maxmind GeoIP Lite City

Thank you

Undefined index: mostSpecificSubdivision

Hi. The plugin sets the user location correctly, but I get the following error:

NOTICE: wp-content/plugins/geoip-detect/geoip-detect-lib.php:162 - Undefined index: mostSpecificSubdivision
require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/timely-timber/page.php'), Timber::get_context, apply_filters('timber_context'), call_user_func_array, StarterSite->add_to_context, geoip_detect2_get_info_from_current_ip, geoip_detect2_get_info_from_ip, _geoip_detect2_record_enrich_data, apply_filters('geoip_detect2_record_data'), call_user_func_array, _geoip_detect2_try_to_fix_timezone

Here's the function I'm using:


// Check if the GEOIP plugin has generated a country code and use that, or fall back to the US
if (!geoip_detect2_get_info_from_current_ip()->isEmpty) {

    $info = geoip_detect2_get_info_from_current_ip();

    $context['geoworking'] = 'yes';

    // Get the users country from the GEOIP plugin  
    $context['usercountry'] = $info->country->isoCode;

} else {
    $context['geoworking'] = 'no';
    $context['usercountry'] = 'US';
};

As a temporary fix I have removed the reference to mostSpecificSubdivision from line 161 of geoip-detect-lib.php

$data['location'] = _geoip_detect_get_time_zone($data['country']['iso_code'], @$data['mostSpecificSubdivision']['isoCode']);

But it would be great to know where I'm going wrong. Thanks, Alan

not picking up some countries

I'm following an example given with CSS to show local contacts depending on Country ISO Code.
While it works for Germany and England, it doesn't do it for other countries.
What could be wrong??
Here is my example: (first two work, Italy doesn't)
<div class="geoip geoip-show-GB">
<strong>Your contact in England</strong>
Company
London
England
+xx
</div>
<div class="geoip geoip-show-DE">
<strong>Your contact in Germany</strong>
Firma
Berlin
Deutschland
+xx
</div>
<div class="geoip geoip-show-IT">
<strong>Your contact in Italy</strong>
Compania
Milano
Italy
+xx
</div>

Update failed. Forbidden

Hi there,

I have just installed the plugin and chosen 'Automatic Download....Maxmind' but the Settings page is showing 'No Maxmind Database Found'. If I try to 'Update Now' I get the error 'Update Failed. Forbidden'.

Looking in my uploads folder I can see two files of between 1 and 2 Mb named 'GeoIP.dat' and 'GeoIPv6.dat'

I have searched Git and wordpress.org to see if anyone else has had the same issue and got a fix but no luck...any help greatly appreciated. :-)

Cheers,

Will

Notice: Use of undefined constant GEOIP_DETECT_UPDATER_INCLUDED - assumed 'GEOIP_DETECT_UPDATER_INCLUDED' in /srv/www/eligiblemagazine/htdocs/wp-content/plugins/geoip-detect/init.php on line 50

got an PHP warning
( ! ) Notice: Use of undefined constant GEOIP_DETECT_UPDATER_INCLUDED - assumed 'GEOIP_DETECT_UPDATER_INCLUDED' in /srv/www/eligiblemagazine/htdocs/wp-content/plugins/geoip-detect/init.php on line 50
Call Stack

Time Memory Function Location

1 0.2030 248200 {main}( ) .../options-general.php:0
2 0.2037 249520 require_once( '/srv/www/eligiblemagazine/htdocs/wp-admin/admin.php' ) .../options-general.php:10
3 2.9624 10757200 require_once( '/srv/www/eligiblemagazine/htdocs/wp-admin/admin-header.php' ) .../admin.php:218
4 3.7850 11211280 do_action( string(17), ??? ) .../admin-header.php:246
5 3.7851 11213144 call_user_func_array:{/srv/www/eligiblemagazine/htdocs/wp-includes/plugin.php:496} ( string(42), array(1) ) .../plugin.php:496
6 3.7851 11213320 geoip_detect_admin_notice_database_missing( string(0) ) .../plugin.php:496

Cannot redefine GEOIP_DETECT_IP_EMPTY_CACHE_TIME

Hi Pal,

I cannot redefine GEOIP_DETECT_IP_EMPTY_CACHE_TIME constant, I still need to wait 2 hours for [0.0.0.0] issue ..

Any suggestion? .. I'm even tried the following

function THEME_SLUG_geoip_change_empty_cache_time() {

if (! defined('GEOIP_DETECT_IP_EMPTY_CACHE_TIME')) {

    define('GEOIP_DETECT_IP_EMPTY_CACHE_TIME', 2 * MINUTE_IN_SECONDS);
}

}
add_action( 'muplugins_loaded', 'THEME_SLUG_geoip_change_empty_cache_time' );

Thanks

Add Gutenberg Frontend

Wordpress 5.0 will include Gutenberg, which replaces the nasty shortcode-logic with shiny visual blocks. This make nestes conditions possible (currently not possible because the same shortcodes cannot be nested).

AJAX Endpoint

admin-ajax.php?action=geoip_detect2_get_info_from_current_ip&locales=fr,en

should return the JSON data.

FAQ entry regarding GeoLite2 license is out of date

Due to upcoming data privacy regulations, MaxMind are making significant changes to how users access free MaxMind GeoLite2 databases starting December 30, 2019. The databases will continue to be available without charge and for redistribution. However, you will be required to create an account and use a license key to download the databases, and agree to a new EULA that addresses applicable data privacy regulations.

Learn more on the MaxMind blog: https://blog.maxmind.com/2019/12/18/significant-changes-to-accessing-and-using-geolite2-databases/.

Mark Fowler
MaxMind

Conditional redirects UI

Would it be possible to integrate this plugin with the popular https://github.com/johngodley/redirection so that geo-conditional redirects can be managed there (including loop detection)? This would require adding new actions/filters per PR.

Filter:

  • redirection_custom_filters - adding a new custom "matches" type.
    • where can I return the HTML needed? or is it react?
  • On save/update: add the custom condition
  • On redirect checks: check if custom condition applies
  • Log: add/fix the geo-information for debugging purposes

geoio_detect2_get_info_from_ip

Hi I'm new in WP.
I have a problem with geoip detect plugin
I found it in log file: [19-Nov-2018 21:30:31 UTC] PHP Notice: GeoIP Detection Plugin: geoip_detect2_get_info_from_ip() was called incorrectly. $skipCache has been renamed to $options. Instead of TRUE, now use "array('skipCache' => TRUE)".
Can you help me fix it ?
I use a free version of Maxmind Country database

regards,
Wojtek

Show visitor IP adress in widget text

Hi,

Basic (dummy) user question but on my wordpress website I add a widget text.
What code do I set here to show visitor his IP adres + country + City?)

Thanks

Fatal Error with PHP 7.2

Hi! Thanks for making this awesome plugin. But recently I'm facing an issue.
When I try to activate the plugin I get this : "Plugin could not be activated because it triggered a fatal error.". It goes away when I change the PHP version to 7.1 or lower. But when I do that I get "Update failed. Forbidden". I thought it is just me until I found atleast one more person having reported this issue in the wordpress support forum.

Fatal error: Declaration of YellowTree\GeoipDetect\DataSources\Precision\PrecisionReader::city($ip) must be compatible with GeoIp2\WebService\Client::city($ipAddress = ‘me’) in ../wp-content/plugins/geoip-detect/data-sources/precision.php on line 34

Network Install on a multi-site

Is there currently a way to install this over a multi-site network.

At the moment, it appears the database would need to be installed for each and every subsite

Too many redirects

When trying to do a redirect as per the instruction the site doesn't load and I get a too many redirects error

add_action('template_redirect', 'geoip_redirect', 5);
function geoip_redirect(){
	if (is_admin() || !function_exists('geoip_detect2_get_info_from_current_ip'))
		return;

	// This condition prevents a redirect loop:
	// Redirect only if the home page is called. Change this condition to the specific page or URL you need.
	if (!is_home())
		return;

	if (!function_exists('geoip_detect2_get_info_from_current_ip'))
		return;

	$userInfo = geoip_detect2_get_info_from_current_ip();
	$countryCode = $userInfo->country->isoCode;
	switch ($countryCode) {
		case 'US':
			$url = '/en-US';
			break;
		default:
			$url = '';
    }
	if ($url) {
		wp_redirect(get_site_url(null, $url));
		exit;
	}
}

GeoIP2 Insight Specific Shortcodes

Awesome plugin!

Was wondering if there were any plans to add GeoIP2 Insight Shortcodes?

The main ones I was after are:

  • ISP / Organization
  • Domain

Cheers!

Maxmind Parsing Error

Hi Benjamin,

Just installed this on my server and ran into this issue. Would you have any clue as to what this could be related to?

(It works fine on my local env)

Fatal error: Uncaught exception 'MaxMind\Db\Reader\InvalidDatabaseException' with message 'The MaxMind DB file's data section contains bad data (unknown data type or corrupt data)' in /var/www/tapplecourt/live/wp-content/plugins/geoip-detect/vendor/maxmind-db/reader/src/MaxMind/Db/Reader/Decoder.php:143 Stack trace: #0 /var/www/tapplecourt/live/wp-content/plugins/geoip-detect/vendor/maxmind-db/reader/src/MaxMind/Db/Reader/Decoder.php(118): MaxMind\Db\Reader\Decoder->verifySize(8, 13) #1 /var/www/tapplecourt/live/wp-content/plugins/geoip-detect/vendor/maxmind-db/reader/src/MaxMind/Db/Reader/Decoder.php(98): MaxMind\Db\Reader\Decoder->decodeByType('double', 33732811, 13) #2 /var/www/tapplecourt/live/wp-content/plugins/geoip-detect/vendor/maxmind-db/reader/src/MaxMind/Db/Reader.php(64): MaxMind\Db\Reader\Decoder->decode(33732810) #3 /var/www/tapplecourt/live/wp-content/plugins/geoip-detect/vendor/geoip2/geoip2/src/GeoIp2/Database/Reader.php(52): MaxMind\Db\Reader->__construct('/var/www/tapple...') #4 /var/www/tapplecourt/liv in /var/www/tapplecourt/live/wp-content/plugins/geoip-detect/vendor/maxmind-db/reader/src/MaxMind/Db/Reader/Decoder.php on line 143

Additional IPstack source

The plugin should allow to choose the IP data from the API of https://ipstack.com/
It is free up to 10.000 requests / mo

  • Retrieve the Data from the REST API
  • Package it into the fields of Maxmind (similar to the hostinfo source) (with a way to access the original data array?)
  • Fill in Timezone data via filter, if necessary & possible
  • Add unit tests
  • Write documentation (readme.txt, privacy policy)

isoCode in lowercase

Hello!

How can I make [geoip_detect2 property="country.isoCode"] return "de" instead of "DE" ?

Will greatly appreciate any help! Many thanks!

Undefined constants depreciated by PHP

Hi guys!

Thanks for all the good job.

The "Query Monitor" plugin show me those warnings when using the geoip_detect2_get_info_from_current_ip() function:

Use of undefined constant GEOIP_DETECT_IPV6_SUPPORTED - assumed 'GEOIP_DETECT_IPV6_SUPPORTED' (this will throw an Error in a future version of PHP) | wp-content/plugins/geoip-detect/geoip-detect-lib.php:271
Use of undefined constant GEOIP_DETECT_IPV6_SUPPORTED - assumed 'GEOIP_DETECT_IPV6_SUPPORTED' (this will throw an Error in a future version of PHP) | wp-content/plugins/geoip-detect/geoip-detect-lib.php:303
Use of undefined constant GEOIP_DETECT_DOING_UNIT_TESTS - assumed 'GEOIP_DETECT_DOING_UNIT_TESTS' (this will throw an Error in a future version of PHP) | wp-content/plugins/geoip-detect/api.php:74
My PHP version is : 7.2.3

Fatal Error w/ Advanced Ads Geo Targeting

Good morning and great plugin!

I've recently been integrating the plugin Advanced Ads (Pro version - along with their Geo Targeting Add-on) which also uses GeoIP2 geo location. Both plugins work perfectly on their own, but when both are activated I receive the following Fatal Error:

[02-Feb-2018 01:08:56 UTC] PHP Fatal error: Cannot declare interface GeoIp2\ProviderInterface, because the name is already in use in .../wp-content/plugins/advanced-ads-geo/includes/GeoIp2/ProviderInterface.php on line 5

I also opened a ticked with the other plugin's author, but thought I would also post here to get your thoughts.

Thank you!

GitHub Updater sees this plugin as 2 different plugins.

In order for GitHub Updater to correctly function, a plugin that exists both within the dot org directory and in GitHub must use the same plugin slug. In this plugin’s case, when installed from dot org the slug will begeoip-detect and if installed from GitHub the slug will be wp-geoip-detect.

As the GitHub Plugin URI: https://github.com/yellowtree/wp-geoip-detect in the plugin’s headers look to the GitHub repository as the source for updates and my show an update. If the GitHub Update is used then it is likely that 2 copies of the plugin will be installed.

The solution is to change the GitHub repository name to match the dot org slug or remove the header from the version pushed to dot org. GitHub does a good job with redirects.

afragen/git-updater#746

Nearest location

Trying to use the latitude/longitude to calculate the nearest location and present the user with content- in this case a phone number. Can anyone help me out?

Locations:
var officeLocations = { "Philadelphia": {latitude: 39.952115, longitude: -75.163696}, "Los Angeles": {latitude: 34.052853, longitude: -118.240077}, "Sydney": {latitude: -24.952110, longitude: 133.370889} } var officePhoneNumbers = { "Philadelphia": "1111111111", "Los Angeles": "2134453245", "Sydney": "1454377643543" }

I've got the call set up and working as follows:
`function geoip_phonenumber(){
$userInfo = geoip_detect2_get_info_from_current_ip();
$lat = $userInfo->location->latitude;
$lon = $userInfo->location->longitude;
if ($lat) {
?>

<script> document.getElementById("phonenumber").innerHTML = ; </script>

unlink $tmpFile When Updating Database

I noticed that the line to unlink the temporary file after updating the database is commented out in updater.php:
//unlink($tmpFile);

Is there a reason for this? I'd thought that it was the responsibility of the caller to unlink the temp file?

Thx.

Error Handling

  • Log errors into file
  • Log Cron errors
  • Error levels: Errors (Update failed, Precision API credits gone etc.), Notices (no info for ip), debug (every single request + response)
  • Show last N errors from file in backend
  • Option to send error messages to Email ?

Esp for Maxmind Precision / Ipstack this might be important (so that there will be a notifiction when the credits are gone.)

Not picking up some countries

Hi guys,

I'm having a problem where the plugin is picking up certain countries but not others.

$userInfo = geoip_detect2_get_info_from_current_ip();
if ($userInfo->country->isoCode == 'US'){
echo 'UNITED STATES';
} elseif ($userInfo->country->isoCode == 'DE'){
echo 'GERMANY';
} elseif ($userInfo->country->isoCode == 'AUS'){
echo 'AUSTRAILIA';
} elseif ($userInfo->country->isoCode == 'CAN'){
echo 'CANADA';
} elseif ($userInfo->country->isoCode == 'NZL'){
echo 'NEW ZEALAND';
} else {
echo 'DEFAULT';
}

This is the code I'm using, and it only picks up the US & Germany but not the others; I've checked the countries iso codes and they seem to be correct. Any ideas or suggestions?

Thank you

inet_pton(): Unrecognized address

My apologies on this somewhat open-ended question, but I've recently been getting the following PHP warning message and not certain where to start on troubleshooting:

 WARNING: wp-content/plugins/geoip-detect/geoip-detect-lib.php:257 - inet_pton(): Unrecognized address  

Any thoughts would be greatly appreciated!

Thank you,

CF7: New shortcode for text input with a default value from geoip-detect

Hi! thanks for the great job. I can easily display a combo box with the country of the user preselected in worpress. But I woulld like to do the same with the city. This is the construction to have the country list with the user's one preselected. [geoip_detect2_countries text-ville id:contact-ville class:form-control lang:fr include_blank default:US]

What could be the equivalent for cities. The goal is to retrieve the user city no matter his manual selection?

Add shortcode for flags

[geoip_detect_flag set="..." ip="..." default=".." height="..." width="..." format="svg|png"]
with the currently detected country.
Flags must be compatible with GPLv3 ...

Fallback-Order

If one of the datasources fail, the request should re-route to a different datasource. This requires

  • A way to check which datasources are currently working
  • The user should be able to choose which datasources to use, and maybe even in which fallback order.
  • It would be nice to have statistics collected how often a specific database fails to get (anything, a country, a city).

Not detecting country

The system does not seem to be detecting the country, based on using the HostIP.info Web-API. all I need is the country of the user, nothing else, but the PHP sample code (which seemed perfect), only results in default listing. What would you suggest?

This is the code I am using:
`
if (function_exists('geoip_detect2_get_info_from_current_ip'))
{
$userInfo = geoip_detect2_get_info_from_current_ip();
$countryCode = $userInfo->country->isoCode;
switch ($countryCode) {
case 'DE':
$SearchLat = 50.00; $SearchLong= -65.00; // Default location atlantic ocean
$ZoomLevel = 4;
break;
case 'US':
$SearchLat = 38.41299; $SearchLong= -102.8106317; // Default location - Center of United States
$ZoomLevel = 4;
break;

	default:
	  $SearchLat = 38.41299;  $SearchLong= -102.8106317;	    // Default location - Center of United States
      $ZoomLevel  = 4;
}

`

How can I get postal code using GeoIP?

WooCommerce: 3.5.1
WordPress: 4.9.8
GeoIP Detection plugin 2.9.1 https://ru.wordpress.org/plugins/geoip-detect/

I need to set the postal code value from GeoIP into billing or shipping fields in woocommerce checkout. By default (GeoIP Detection plugin) I can only set the following values:

    $record->city->name  [geoip_detect2 property="city"]
    $record->mostSpecificSubdivision->isoCode  [geoip_detect2 property="mostSpecificSubdivision.isoCode"]
    $record->mostSpecificSubdivision->name  [geoip_detect2 property="mostSpecificSubdivision"]
    $record->country->isoCode  [geoip_detect2 property="country.isoCode"]
    $record->country->name  [geoip_detect2 property="country"]
    $record->location->latitude  [geoip_detect2 property="location.latitude"]
    $record->location->longitude  [geoip_detect2 property="location.longitude"]
    $record->continent->code  [geoip_detect2 property="continent.code"]
    $record->location->timeZone  [geoip_detect2 property="location.timeZone"]

I set values by following code in child-theme functions.php

add_filter( 'woocommerce_checkout_fields', 'set_checkout_field_input_value_default' );
    
    function set_checkout_field_input_value_default($fields) {
        $fields['billing']['billing_city']['default'] = do_shortcode( '[geoip_detect2 property="city"]' );
        $fields['billing']['billing_state']['default'] = do_shortcode( '[geoip_detect2 property="mostSpecificSubdivision"]' );
        $fields['billing']['billing_postcode']['default'] = do_shortcode( '???' );
        return $fields;
    }

How can I set GeoIP postcode as a default value? Any solution, pls!

Shortcode show if question

I have three subscribe forms based on Geolocation. So, if you're in Virginia, you see the Virginia form, Colorado, that specific form and Georgia, that form.

Is there a way to make the "Virginia" form a default display for other states? So if you're visiting the site from Maryland, North Carolina, etc. show the Virginia form but if you're from Georgia you see the Georgia form and Colorado, the Colorado form.

Thanks!

Improve AJAX support

So far, this is implemented in 2.11.0:

  • JSON Endpoint
  • JS code to access the record of this endpoint
  • (Hidden feature) Body class via AJAX

Use this bug report to discuss any improvement ideas.

  • Add cookie cache for server response

Roadmap:

  1. Next months - Stabilize API (e.g. - I'm not sure if record.get() should support both camelCase and underscore_property), remove Beta flag
  2. Sometime in the future - Make it possible that the current shortcodes work automatically also via AJAX. (It will be hard to implement all properties. But I don't want to implement only some and get support requests. That's why it will probably take quite a while.)

Relative path gets converted to absolute path

I have a project hosted on Pantheon using the Manual Data Source option. Works greats, however, when we migrate the database between different hosts we have to constantly go into the backend and resubmit the manual data source since the path seems to be getting converted from a relative to an absolute path.

Is there any way to automate this step to make deployments easier in the future?

contact

Hi Benjamin,

do you have any email where I could contact you ? Or if you could write me back at [email protected] would be great. I have a proposition but couldn't find any contact info in the wiki.

thanks, sorry for using tickets for this

Add Shortcode to Hide Content

Add enclosed shortcode [shortcode]Content[/shortcode] to hide the content within unless a user is within the specified country/region/city/etc.

Minor bug: "GeoIP Detection: No database installed" notice is shown to subscribers (non-admin) users

  • WordPress version: 4.4.1
  • GeoIP Detect version: 2.5.4

Description

Despite dismissing the "GeoIP Detection: No database installed" admin notice as an administrator user (i.e., requesting that the notice not be displayed again), when I logged into the site in which the plugin was installed as a user assigned the Subscriber role, the same admin notice reappeared.

Steps to reproduce

  1. Install GeoIP Detection plugin as a user assigned the Administrator role.
  2. After installation, click the textual "Dismiss" link at the top-right of the "No database installed" admin notice that appears.
  3. Log out of WordPress and log back into WordPress as a user assigned the Subscriber role.
  4. Observe the "No database installed" admin notice has reappeared.

Expected results

I expected that this particular admin notice never appear for a Subscriber because they do not have a relevant role in managing the GeoIP database for the site.

Barring that, I expected that clicking the "Dismiss" link in the admin notice would prevent the notice from being shown again regardless of the currently logged-in user.

Actual results

Logging into other user accounts, apparently regardless of the capabilities those user accounts have, display the admin notice again.

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.