Giter Club home page Giter Club logo

vcard's Introduction

VCard PHP library

Latest Stable Version License Build Status Scrutinizer Code Quality

This VCard PHP library can generate a vCard with some data. When using an iOS device < iOS 8 it will export as a .ics file because iOS devices don't support the default .vcf files.

NOTE: We are working on a complete new version to work with vCard version 4.0, with extreme good code quality. Check out the new version

Usage

Installation

composer require jeroendesloovere/vcard

This will install the latest version of vcard with Composer

Example

use JeroenDesloovere\VCard\VCard;

// define vcard
$vcard = new VCard();

// define variables
$lastname = 'Desloovere';
$firstname = 'Jeroen';
$additional = '';
$prefix = '';
$suffix = '';

// add personal data
$vcard->addName($lastname, $firstname, $additional, $prefix, $suffix);

// add work data
$vcard->addCompany('Siesqo');
$vcard->addJobtitle('Web Developer');
$vcard->addRole('Data Protection Officer');
$vcard->addEmail('[email protected]');
$vcard->addPhoneNumber(1234121212, 'PREF;WORK');
$vcard->addPhoneNumber(123456789, 'WORK');
$vcard->addAddress(null, null, 'street', 'worktown', null, 'workpostcode', 'Belgium');
$vcard->addLabel('street, worktown, workpostcode Belgium');
$vcard->addURL('http://www.jeroendesloovere.be');

$vcard->addPhoto(__DIR__ . '/landscape.jpeg');

// return vcard as a string
//return $vcard->getOutput();

// return vcard as a download
return $vcard->download();

// save vcard on disk
//$vcard->setSavePath('/path/to/directory');
//$vcard->save();

View all examples or check the VCard class.

Parsing examples

The parser can either get passed a VCard string, like so:

// load VCardParser classes
use JeroenDesloovere\VCard\VCardParser;

$parser = new VCardParser($vcardString);
echo $parser->getCardAtIndex(0)->fullname; // Prints the full name.

Or by using a factory method with a file name:

$parser = VCardParser::parseFromFile('path/to/file.vcf');
echo $parser->getCardAtIndex(0)->fullname; // Prints the full name.

View the parsing example or check the the VCardParser class class.

Support for frameworks

I've created a Symfony Bundle: VCard Bundle

Usage in for example: Laravel

return Response::make(
    $this->vcard->getOutput(),
    200,
    $this->vcard->getHeaders(true)
);

Tests

vendor/bin/phpunit tests

Documentation

The class is well documented inline. If you use a decent IDE you'll see that each method is documented with PHPDoc.

Contributing

Contributions are welcome and will be fully credited.

Pull Requests

To add or update code

  • Coding Syntax - Please keep the code syntax consistent with the rest of the package.
  • Add unit tests! - Your patch won't be accepted if it doesn't have tests.
  • Document any change in behavior - Make sure the README and any other relevant documentation are kept up-to-date.
  • Consider our release cycle - We try to follow semver. Randomly breaking public APIs is not an option.
  • Create topic branches - Don't ask us to pull from your master branch.
  • One pull request per feature - If you want to do more than one thing, send multiple pull requests.
  • Send coherent history - Make sure each individual commit in your pull request is meaningful. If you had to make multiple intermediate commits while developing, please squash them before submitting.

Issues

For bug reporting or code discussions.

More info on how to work with GitHub on help.github.com.

Credits

License

The module is licensed under MIT. In short, this license allows you to do everything as long as the copyright statement stays present.

vcard's People

Contributors

4rthem avatar bartgloudemans avatar ch-feedbackpeople avatar christianruhstaller avatar claudusd avatar fetchandadd avatar h44z avatar jako avatar jeroendesloovere avatar joshk avatar lidbetter avatar lordsimal avatar mgrundkoetter avatar muhammetus avatar peter279k avatar sajjadrad avatar simonheimberg avatar stadly avatar stephanvierkant avatar synchro avatar therouv avatar tomandersen avatar tringalama2 avatar wadmiraal avatar yuks 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

vcard's Issues

Problem with Persian characters

Problem

As described by @sajjadrad, building a vCard with some Unicode characters (for example in persian : سجاد راد ) isn't creating the right words (false => ط¨ط§ط²غŒع¯ط±). And when importing in Microsoft Outlook, it is wrong.

Check #47 for more information

Submit URL for image

Why is there only and option to specify and image via a local path, why can we not just provide a URL?

Otherwise really like the tool! Thanks!

addPhotoEncoded() disappeared

Hi,

First I want to thank you for your work. This is great.

Since the last upgrade I cannot use the base64 string image format. It seems that "addPhotoEncoded" has disappeared.
IS there a replacement mechanism for this situation ?...

Best regards...

please help - cant download in native android browser

hi jeroen,
im still having problems saving vcf files in native android browser, apparently the problem is not related to lg phones as i thought.
i found out that if i remove the image i can download the file.
you previously marked my issue as invalid, i beg you to take another look before you decide to do so again.
many thanks

Version 3.0 - Mac OS X 10.11.5

Hi @jeroendesloovere

Parser does not recognize the previous parameter "item1" at EMAIL line and not entry into the switch cases.

I post you an example:

BEGIN:VCARD
VERSION:3.0
PRODID:-//Apple Inc.//Mac OS X 10.11.5//EN
N:;Albert;;;
FN:Albert
item1.EMAIL;type=INTERNET;type=pref:[email protected]
item1.X-ABLabel:$!!$
UID:a842653d-3353-45a3-a6b9-c7fd95c1380c
X-ABUID:A842653D-3353-45A3-A6B9-C7FD95C1380C:ABPerson
END:VCARD

Thanks!

Error with using $url addMedia

This change ea119a3 has caused issues on php 5.6 in my app. I get the following error:

Warning (2): mime_content_type(): Failed identify data 0:no magic files loaded in ...

I'm guessing because I'm passing a url instead of a file location, and mime_content_type() doesn't automatically download the file?

How to load in the VCard php library?

Hi

I have been trying to use this class with no success, I use it in a custom class I am calling it as follows

require_once($_SERVER['DOCUMENT_ROOT'].'/path/to/vcardclass/vcard-master/src/VCard.php');
use JeroenDesloovere\VCard\VCard;

$vcard = new VCard();
$firstname = 'Jeroen';
$lastname = 'Desloovere';
$additional = '';
$prefix = '';
$suffix = '';

    // add personal data
->  $vcard->addName($lastname, $firstname, $additional, $prefix, $suffix); <- when I get here everything breaks.

what Am I doing wrong?

Why is JeroenDesloovere\VCard\VCard::addMedia() private?

Hello,

I am wondering why JeroenDesloovere\VCard\VCard::addMedia() is private? Indeed, because of this, it's impossible to add a logo.

There is a addPhoto method but no addLogo method. Unfortunately, calling addMedia('LOGO', URL) directly will throw an error.

Regards,

Tristan

Add UID?

Hello, thanks for the project, I think it's great, almost perfect for what I'm looking for.

Can we get UID added as a supported property?

I just basically duplicated the addURL() method for my own use. But I'm a bit confused on what to put in the comment for $type... I think "UUID" would be relevant, but more explanation on the issue can be found at the following link, and I'm curious as to your thoughts.
http://microformats.org/wiki/vcard-errata#3.6.7_UID_Type_Definition

I'm new to GitHub, but I think I can submit the code. However, in reading your README.md file regarding contribution, I see you ask for unit tests, which I've never done. I'm looking at tests/VCardTest.php, would I be able to just duplicate the testAddUrl() method and edit it appropriately? Or is there a different and/or better way?

Multiple email addresses

Right now it is only possible to set exactly one email address. The method name "addEmail" implies the possibility to set more than just one. The attribute based type of emails should be possible like it is with several other properties (like address, phone number, etc.).
To be backwards compatible the method could be changed so the default attributes are still used when the method is called. Only if the user provides a second parameter, the default value of "EMAIL;INTERNET" is overwritten.

getOutput() "destroys" UTF-8

If the output is suppose to be UTF-8 ($this->getCharset() == 'utf-8') then it is a bad idea to use the function utf8_decode to convert most exotic characters back to ISO-8859-1...
This will always lead to missing UTF-8 characters in the output.

vCard is downloaded as html

On my Android-Phone (Android 4.4.2) with the standard browser, the vcard is dowloaded as a .html-file

vcard = new VCard();
$vcard->addCompany($companyDocument->getName());
$vcard->addEmail($companyDocument->getEmailAddress());
$vcard->addPhoneNumber($companyDocument->getPhone(), 'WORK');

return $vcard->download()

I did also test this on an Iphone 6 (Safari, iOS 9.3.4): It doesn't download but instead views the vcard data directly in the browser.

Any suggestions? Thanks!

Double space when no "additional" field is given

If you use the addName() method to add a firstname and a lastname, but no $additional value, there will be a double space between firstname and lastname in the vCard.

Example:

$vc->addName("Herrmann", "Daniel");

//yields Daniel  Herrmann (notice the double space).

It also does not help to set the additional value explicitly to null.

addPhoto error

I'm having the following issue:

mime_content_type(): Failed identify data 0:(null)

When trying to use the default image:

$vcard->addPhoto('https://raw.githubusercontent.com/jeroendesloovere/vcard/master/tests/image.jpg');

Non-latin letters break vCard

Here's the code I use for test:

<?php

require_once __DIR__ . '/vendor/autoload.php';
require_once __DIR__ . '/vendor/jeroendesloovere/vcard/src/VCard.php';

use JeroenDesloovere\VCard\VCard;

// define vcard
$vcard = new VCard();

// define variables
$firstname = 'John';
$lastname = 'Doe';
$additional = '';
$prefix = '';
$suffix = '';

// add personal data
$vcard->addName($lastname, $firstname, $additional, $prefix, $suffix);

// add work data
$vcard->addCompany('Siesqo');
$vcard->addJobtitle('Web Developer');
$vcard->addEmail('[email protected]');
$vcard->addPhoneNumber(1234121212, 'PREF;WORK');
$vcard->addPhoneNumber(123456789, 'WORK');
$vcard->addAddress(null, null, 'street', 'worktown', null, 'workpostcode', 'Belgium');
$vcard->addURL('http://www.jeroendesloovere.be');

return $vcard->download();

Import into contact book on macOS Sierra 10.12.3 goes fine.

But when I use Cyrillic letters...

$firstname = 'Иван';
$lastname = 'Петров';

I get this error when I try to import on macOS:

No cards added. No importable cards were found.

This is the generated broken card:

BEGIN:VCARD
VERSION:3.0
REV:2017-03-07T21:37:15Z
N;CHARSET=utf-8:Петров;Иван;;;
FN;CHARSET=utf-8:Иван Петров
ORG;CHARSET=utf-8:Siesqo
TITLE;CHARSET=utf-8:Web Developer
EMAIL;INTERNET:[email protected]
TEL;PREF;WORK:1234121212
TEL;WORK:123456789
ADR;WORK;POSTAL;CHARSET=utf-8:;;street;worktown;;workpostcode;Belgium
URL:http://www.jeroendesloo

To compare, when I make up a similar card in macOS Contacts app and export it, here's the working (importable) vCard I get:

BEGIN:VCARD
VERSION:3.0
PRODID:-//Apple Inc.//Mac OS X 10.12.3//EN
N:Петров;Иван;;;
FN:Иван Петров
ORG:Siesqo;
TITLE:Web Developer
EMAIL;type=INTERNET;type=HOME;type=pref:[email protected]
TEL;type=WORK;type=VOICE;type=pref:1234121212
TEL;type=WORK;type=VOICE:123456789
ADR;type=HOME;type=pref:;;street;worktown;;workpostcode;Belgium
item1.URL;type=pref:http://www.jeroendesloovere.be
item1.X-ABLabel:_$!<HomePage>!$_
X-ABUID:A350AF28-459F-420B-A068-BCC92001D906
END:VCARD

MIME types need updating?

The official MIME type for VCards/vcf is apparently text/vcard, and the type for iCalendar/ics files is meant to be text/calendar according to RFC6350 and RFC5545. This VCard class instead sets the types to text/x-vcard and text/x-vcalendar respectively in the getContentType method. Is there any reason not to update to those?

Reference to non-declared class

Hi! Awesome php class! Thank you!

Just a little observation:

On line 188 you're referencing Class "FL" with a static function 'msg' which is nowhere to be found. As a result it throws an error when accessing via iPhone. I replaced it with hardcoded message and it worked like a charm.

Images

Hi - images are being encoded and appear when in phone, however not in outlook or Microsoft Address book, nor Thunderbird.

And ideas on this ?

macOS address book export - parsing not complete

Hello,

giving the parser a file with contents such as this:

BEGIN:VCARD
VERSION:3.0
PRODID:-//Apple Inc.//Mac OS X 10.13//EN
N:;;;;
FN:Arzt Keitel-Stöckert
ORG:Arzt Keitel-Stöckert;
item1.TEL;type=pref:0521 891775
item1.X-ABLabel:HOME,VOICE,pref
ADR;type=WORK;type=pref:;;Apfelstraße 56;Bielefeld;;33613;
NOTE:MO – DO 8.00 – 11.00 Uhr\nMO, DI, DO 15.30 – 18.00 Uhr\nFR 8.00 – 12.00 Uhr\nTermine außerhalb unserer Sprechzeiten nach Vereinbarung
X-ABShowAs:COMPANY
UID:965FEAD5-E4FC-4281-BA5B-917E22DA9373
X-ABUID:AA5C5EC3-8EA3-46BB-A578-8E8253914B63:ABPerson
END:VCARD

outputs the following properties:

Importiere Arzt Keitel-Stöckert
version: 3.0
lastname:
firstname:
additional:
prefix:
suffix:
fullname: Arzt Keitel-Stöckert
organization: Arzt Keitel-Stöckert;
note: MO – DO 8.00 – 11.00 Uhr MO, DI, DO 15.30 – 18.00 Uhr FR 8.00 – 12.00 Uhr Termine außerhalb unserer Sprechzeiten nach Vereinbarung

  • phone is missing
  • address is missing

also missing:

EMAIL;type=INTERNET;type=HOME;type=pref:[email protected]
EMAIL;type=INTERNET;type=WORK:[email protected]

Website Info missing as well.

Remove get() function

This function should be deprecated in favor of the function ->getOutput(), which more describes what it actually does.

charset problem

Hi,

$vcard->addName("Ali", "ÖZSÜT");

output:

Ali Özsüt

I using laravel, charset utf-8

Ability to Add Multiple Addresses, Dates and Emails

I currently do not see a way of adding multiple addresses, dates, or emails to a vCard. You can do this with the addPhoneNumber() function, but the other functions do not seem to support this. Here is an example:

    $queryEmails  = "SELECT * FROM contact_emails WHERE contact_id = $contactID";
    $resultEmails  = mysqli_query($dbc, $queryEmails);
    $numEmails    = mysqli_num_rows($resultEmails);

    if ($numEmails >= 1) {
        // There are emails associated with this contact
        while ($email = mysqli_fetch_array($resultEmails, MYSQLI_ASSOC)) {
            $vcard->addEmail($email['email'], $email['label']);
        }
    }

Lets say the example contact above has 3 email addresses on file. When doing the while loop, only the last email in the loop is stored in the vCard. The first 2 emails are overridden.

So is it possible for you to update this?

Vcard Encoding

How can I add latin1 (iso8859-1) support ?
i have Chargé(e) instead of Chargé(e)

Content-length returns "0" when charset is set to other than "utf-8"

I had the problem, that I had to set the charset for vcards to "ISO-8859-1". And every data that was set into the vcard was converted using "utf8_decode".

On my development machine everything worked as expected but on the real server the downloaded vcards where just empty.

The reason is, that in "getHeaders($asAssociative)" the "strlen($this->getOutput())" call returns "0" for some reason.

VCard.php Line 92 | missing semicolon | addAddress()

When adding a country field addAddress(), I noticed base64 encoding of photo being added in vcard. After the function call of

$vcard->addAddress(null, null, $vcard_street_address, $vcard_city, $vcard_state, $vcard_postal_code, $vcard_country);

I am calling $vcard->addPhoto($vcard_photo);

...and no photo is being added to vcard.

Solution: jeroendesloovere/vcard/src/VCard.php Line 92

$value = $name . ';' . $extended . ';' . $street . ';' . $city . ';' . $region . ';' . $zip . ';' . $country . ';';

addName

I want to be able just supply a name http://autofill.dabase.com/ in free form. And that would just become:

 FN;CHARSET=UTF-8:John Doe

Could your API be simpler, please?

Use issues...

Hello,

I want to use your class in a project and I'm trying to make it work, but I can't.

Here is the content of my composer.json :
{ "name": "philippepartners/law", "require": { "drewm/mailchimp-api": "^2.1", "jeroendesloovere/vcard": "1.2.*" } }

I have install/update composer on my project. My project is a WordPress site. The file functions.php is called on every page of the site. In that file, I have that line :
require_once( 'vendor/autoload.php' );

In an other PHP file, I have this code :
`use \JeroenDesloovere\VCard\VCard;

// define vcard
$vcard = new VCard();

// define variables
$firstname = 'Jeroen';
$lastname = 'Desloovere';
$additional = '';
$prefix = '';
$suffix = '';

// add personal data
$vcard->addName($lastname, $firstname, $additional, $prefix, $suffix);

// add work data
$vcard->addCompany('Siesqo');
$vcard->addJobtitle('Web Developer');
$vcard->addEmail('[email protected]');
$vcard->addPhoneNumber(1234121212, 'PREF;WORK');
$vcard->addPhoneNumber(123456789, 'WORK');
$vcard->addAddress(null, null, 'street', 'worktown', null, 'workpostcode', 'Belgium');
$vcard->addURL('http://www.siesqo.be');

/* $vcard->addPhoto(DIR . '/assets/landscape.jpeg'); */

// return vcard as a string
//return $vcard->getOutput();

// return vcard as a download
return $vcard->download();

// echo message
echo 'A personal vCard is saved in this folder: ' . DIR;`

When I go with my browser to that page, I have this error :
`[27-Sep-2016 12:26:31 UTC] PHP Fatal error: Uncaught Error: Class 'JeroenDesloovere\VCard\VCard' not found in /mysite/wp-content/themes/PhilippePartners/single-lawyer-vcard.php:15
Stack trace:
#0 /mysite/wp-includes/template.php(574): require()
#1 /mysite/wp-includes/template.php(531): load_template('/Users/cedricno...', false)
#2 /mysite/wp-includes/general-template.php(167): locate_template(Array, true, false)
#3 /mysite/wp-content/themes/PhilippePartners/single-lawyer.php(4): get_template_part('single-lawyer-v...')
#4 /mysite/wp-includes/template-loader.php(75): include('/Users/cedricno...')
#5 /mysite/wp-blog-header.php(19): require_once('/Users/cedricno...')
#6 /mysite/index.php(17): require('/Users/cedricno...')
#7 {main}

thrown in /mysite/wp-content/themes/PhilippePartners/single-lawyer-vcard.php on line 15`

What's wrong ? Thank you in advance !

Remove PHP 5.7 from Travis

The builds keep failing because of the PHP 5.7 environment. I suggest you remove it, as a failed build badge doesn't inspire confidence, which is a shame, because your library works fine.

visit card with only email address gets no filename (edge case)

When I create a visit card with almost no data (only email address in my example), then filename is empty. On downloading, this resulted in a file named "vcf". (No idea where the leading . (point) was lost.)

This case could be handled in getHeaders (and maybe save and buildVCalendar). I propose a flag to getFileName. When this is set, then 'someone' is returned instead of an empty string.

This is really an edge case. But I was irritated when I got a file without any file extension.

Any plans to add parsing?

To turn this into a complete package, do you have any ideas to add Vcard parsing to your library?

PHP version

I noticed that in the composer file a PHP version of 5.3.3 is still accepted, while the code actually uses version 5.4 and above, meaning the code is no longer running at 5.3.3.
Personally, I would like to follow the example of Symfony 3 and increase the php version in the composer file to 5.5.9.
I am very curious about your opinion.

AJAX

im trying to use your plugin with ajax request, and i need to download the file at the end.
the vcard is being created but not downloaded, can u please help?
thanks
website: http://bestcard.shakuf.tk/?page_id=2

buildVcard method should be public

Hello,
Very difficult to find a good PSR PHP class implementing vcard generation ! thanks for yours ;)
I need to get the vcard string and i think buildVcard() should be public as it may be useful

encoding problem

hi i have another problem.
i need to save the vcard file with ansi (WINDOWS-1255) encoding.
i tried to change public $charset to windows-1255 but it didnt work (the file i download is encoded in utf8 without bom)
i managed to fix it on Chrome by adding accept-charset="windows-1255" attr to the form but it doesnt work on ie.
any suggestions?
thanks

How to load in the VCard php library?

I saw this question posted previously, and am aware the advised solution is to install composer. However, I am running on a shared server and do not have the option of installing composer. Downloading the files is the only way I can use this. If there is another way I'm not aware of, I'm open to it. Is there a set of files available for download?

Folded line causing cut-off cities in certain vcards

Problem: Certain region names are being cut off in vcards with longer addresses where the line requires folding. Issue is occuring when opened with "Windows Contacts" on Windows 10.

Is there something wrong with this vcard? It seems correct at first glance.

Thanks!

Example vcard with problem

BEGIN:VCARD
VERSION:3.0
REV:2017-06-08T23:24:49Z
N;CHARSET=utf-8:Doe;John;;;
FN;CHARSET=utf-8:John Doe
ADR;WORK;POSTAL;CHARSET=utf-8:;;555 East Flours Street 88th Floor;Los Ang
 eles;CA;55555;
TEL;PREF;WORK:5555555555
TITLE;CHARSET=utf-8:Example
END:VCARD

Related spec info

3.2. Line Delimiting and Folding

Individual lines within vCard are delimited by the [RFC5322] line
break, which is a CRLF sequence (U+000D followed by U+000A). Long
logical lines of text can be split into a multiple-physical-line
representation using the following folding technique. Content lines
SHOULD be folded to a maximum width of 75 octets, excluding the line
break. Multi-octet characters MUST remain contiguous. The rationale
for this folding process can be found in [RFC5322], Section 2.1.1.

A logical line MAY be continued on the next physical line anywhere
between two characters by inserting a CRLF immediately followed by a
single white space character (space (U+0020) or horizontal tab
(U+0009)). The folded line MUST contain at least one character. Any
sequence of CRLF followed immediately by a single white space
source: https://tools.ietf.org/html/rfc6350#section-3.2

Not Working with UTF-8 and Outlook 2010 Windows 8 Machine

Hi Jero,

nice small project y worte, ty for that!

I foudn after 3 hours now, that for working in outlook we need to "utf8_decode" the output to show right chars in outlook 2010. I know that this is a f..ing s..t bug from outlook but i need to support it. So i either have to copy your code and adapt it, or you/me could integrate this into the VCard class. It is quite simple.

public function getOutput()
{
$output = ($this->isIOS7()) ?
$this->buildVCalendar() : $this->buildVCard();
if ($this->getCharset() == 'utf-8') {
$output = utf8_decode($output);
}

    return $output;
}

But i did not tested it on other webcielnst thats my problem...

best regards gizzmo

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.