GithubHelp home page GithubHelp logo

pablouser1 / proxitok Goto Github PK

View Code? Open in Web Editor NEW
1.8K 26.0 129.0 619 KB

Open source alternative frontend for TikTok made using PHP

Home Page: https://github.com/pablouser1/ProxiTok/wiki/Public-instances

License: GNU Affero General Public License v3.0

PHP 48.09% JavaScript 6.60% CSS 2.19% Latte 40.91% Procfile 0.09% Dockerfile 0.74% SCSS 1.38%
tiktok alternative-frontends php proxitok tiktok-scraper

proxitok's Introduction

Typing SVG

About me

arch lineage firefox vscode nextcloud

ℹ️ You can know more about me and my skillsets on my website

receives patrons

Stats

My GitHub stats Top Langs

Entertainment

spotify-github-profile

trakt-github-card backloggd-github-card

proxitok's People

Contributors

alefvanoon avatar chrisnovakovic avatar davidcollini avatar fariszr avatar j9d3it avatar konopielko avatar manerakai avatar noplagiarism avatar pablouser1 avatar reflux0301 avatar rystaf avatar samip5 avatar taivlam avatar thefrenchghosty avatar zottelchen 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

proxitok's Issues

Errors HTTP 50x

Hello,

I tried proxitok on the flagship instance and on mine, but all i have is a blank page. According the web inspector, this is an HTTP 500 error in both case. Only the main page and the discover page are working, and the trending page give me a HTTP 502 error.

Typed property TikScraper\Models\Info::$detail must not be accessed before initialization

All profile pages don't load (pick any https://proxitok.pussthecat.org/discover ):

Fatal error: Uncaught Error: Typed property TikScraper\Models\Info::$detail must not be accessed before initialization in /var/www/html/vendor/pablouser1/tikscraper/src/Api.php:70 Stack trace: #0 /var/www/html/app/Controllers/UserController.php(15): TikScraper\Api->getUserFeed('billieeilish', 0) #1 [internal function]: App\Controllers\UserController::get('billieeilish') #2 /var/www/html/vendor/bramus/router/src/Bramus/Router/Router.php(476): forward_static_call_array(Array, Array) #3 /var/www/html/vendor/bramus/router/src/Bramus/Router/Router.php(440): Bramus\Router\Router->invoke('UserController@...', Array) #4 /var/www/html/vendor/bramus/router/src/Bramus/Router/Router.php(287): Bramus\Router\Router->handle(Array, true) #5 /var/www/html/index.php(14): Bramus\Router\Router->run() #6 {main} thrown in /var/www/html/vendor/pablouser1/tikscraper/src/Api.php on line 70

docker container error non zero code on Dockerfile

Hi Pablo Ferreiro,
I'm trying to deploy your code on k8s container but return non zero code on dockerfile build , i think it's because dockerfile isn't standard for direct read from contaniers & it must start from docker-compose . please make changs on Dockerfile to work direct build correctly.
waiting for your commit/s.
finest regards

Offline for maintenance

First of all, thank you for making this!!
I've been looking for a private way to watch TikToks that friends and family send me, and now it's finally here. Combine it with a link redirector extension and bam, never have to connect to TikTok's servers. Thank you!

Although, I did check this morning and found that the site says its under maintenance:
Screenshot_20220114-082340_Firefox Nightly

Thanks :)

Option to download all videos?

This probably isn't feasible, but how easy would it be to implement a way of downloading all videos on a page at once? Would help with archiving too

Add volume slider

It would be great if you add a volume slider when watching videos

Pages has no videos on them after clicking "Next"

If you go to a tag, for an example (funnyvideos)[https://proxitok.herokuapp.com/tag/funnyvideos], you'll see videos. But if you hit the "Next" button, the next page will not have any videos at all and the "Next" button are inactive yet clickable (just reloads the page). (This link)[https://proxitok.herokuapp.com/tag/funnyvideos?cursor=5854611] shows this.

If you're on the trending page, you can get more videos on the first next page click, but not if you click on it again.

Redirect with Redirector as well

ProxiTok works nicely, thanks.

README.md states "If you want to automatically redirect Tiktok links to ProxiTok, download Libredirect"
Libredirect is a great extension but you may as well redirect Tiktok links to ProxiTok with the Redirector extension (Firefox, not sure for other browsers) :

Description: TIKTOK TO PROXITOK
Example URL: https://www.tiktok.com/@valerisssh
Include pattern: (.*//.*)(tiktok.com)(.*)
Redirect to: https://proxitok.herokuapp.com$3
Example result: https://proxitok.herokuapp.com/@valerisssh
Pattern type: Regular Expression
Apply to: Main window (address bar)

Whatever redirect tool, ProxiTok is top :=)

Everything broke AGAIN

Everything broke AGAIN.

@pablouser1 I asked you to test your code here, you told me that you would, you didn't, so things broke AGAIN.

This is the last time I'm reporting a bug, next time I'm killing my instance, I'm sick of babysitting it because every single commit break something. https://github.com/pablouser1/ProxiTok/issues?q=is%3Aissue+author%3ATheFrenchGhosty

On some profiles:

Warning: Undefined property: stdClass::$detail in /var/www/html/vendor/pablouser1/tikscraper/src/Models/Info.php on line 23

Fatal error: Uncaught TypeError: TikScraper\Models\Info::setDetail(): Argument #1 ($detail) must be of type object, null given, called in /var/www/html/vendor/pablouser1/tikscraper/src/Models/Info.php on line 23 and defined in /var/www/html/vendor/pablouser1/tikscraper/src/Models/Info.php:13 Stack trace: #0 /var/www/html/vendor/pablouser1/tikscraper/src/Models/Info.php(23): TikScraper\Models\Info->setDetail(NULL) #1 /var/www/html/vendor/pablouser1/tikscraper/src/Cache.php(41): TikScraper\Models\Info->fromCache(Object(stdClass)) #2 /var/www/html/vendor/pablouser1/tikscraper/src/Items/Base.php(32): TikScraper\Cache->handleInfo('user-bianca2849') #3 /var/www/html/vendor/pablouser1/tikscraper/src/Items/User.php(14): TikScraper\Items\Base->__construct('bianca2849', 'user', Object(TikScraper\Sender), Object(TikScraper\Cache), false) #4 /var/www/html/vendor/pablouser1/tikscraper/src/Api.php(25): TikScraper\Items\User->__construct('bianca2849', Object(TikScraper\Sender), Object(TikScraper\Cache), false) #5 /var/www/html/app/Controllers/UserController.php(15): TikScraper\Api->user('bianca2849') #6 [internal function]: App\Controllers\UserController::get('bianca2849') #7 /var/www/html/vendor/bramus/router/src/Bramus/Router/Router.php(476): forward_static_call_array(Array, Array) #8 /var/www/html/vendor/bramus/router/src/Bramus/Router/Router.php(440): Bramus\Router\Router->invoke('UserController@...', Array) #9 /var/www/html/vendor/bramus/router/src/Bramus/Router/Router.php(287): Bramus\Router\Router->handle(Array, true) #10 /var/www/html/index.php(17): Bramus\Router\Router->run() #11 {main} thrown in /var/www/html/vendor/pablouser1/tikscraper/src/Models/Info.php on line 13
`

On other profiles:

Fatal error: Uncaught Error: Typed property TikScraper\Models\Info::$detail must not be accessed before initialization in /var/www/html/vendor/pablouser1/tikscraper/src/Items/User.php:52 Stack trace: #0 /var/www/html/vendor/pablouser1/tikscraper/src/Items/User.php(43): TikScraper\Items\User->feedStandard(0) #1 /var/www/html/app/Controllers/UserController.php(16): TikScraper\Items\User->feed(0) #2 [internal function]: App\Controllers\UserController::get('willsmith') #3 /var/www/html/vendor/bramus/router/src/Bramus/Router/Router.php(476): forward_static_call_array(Array, Array) #4 /var/www/html/vendor/bramus/router/src/Bramus/Router/Router.php(440): Bramus\Router\Router->invoke('UserController@...', Array) #5 /var/www/html/vendor/bramus/router/src/Bramus/Router/Router.php(287): Bramus\Router\Router->handle(Array, true) #6 /var/www/html/index.php(17): Bramus\Router\Router->run() #7 {main} thrown in /var/www/html/vendor/pablouser1/tikscraper/src/Items/User.php on line 52

Class 'DomDocument' not found

Hello,

first thank for your work ! It will be very usefull for me. I had been looking for a way to access tiktok videos for a long time without having to load a lot of javascript.

Configuration

I didn't install proxitok via docker
I have php 7.4 , chromedriver 102.0.5005.61 and redis-server installed

env file

Here is my .env file

 API_BROWSER_URL=http://localhost:9515
 API_CACHE=redis
 REDIS_HOST=localhost # Host or path to unix socket
 REDIS_PORT=6379 # Set to -1 to use unix socket

Error

I can go the main page, discover, trending, but if a go to a specific user and/or video, I got this error

[::1]:36458 [500]: GET /@squeezie - Uncaught Error: Class 'DomDocument' not found in /var/www/proxitok/vendor/pablouser1/tikscraper/src/Helpers/Misc.php:35
Stack trace:
#0 /var/www/proxitok/vendor/pablouser1/tikscraper/src/Items/User.php(27): TikScraper\Helpers\Misc::extractSigi()
#1 /var/www/proxitok/vendor/pablouser1/tikscraper/src/Items/User.php(16): TikScraper\Items\User->info()
#2 /var/www/proxitok/vendor/pablouser1/tikscraper/src/Api.php(25): TikScraper\Items\User->__construct()
#3 /var/www/proxitok/app/Controllers/UserController.php(15): TikScraper\Api->user()
#4 [internal function]: App\Controllers\UserController::get()
#5 /var/www/proxitok/vendor/bramus/router/src/Bramus/Router/Router.php(476): forward_static_call_array()
#6 /var/www/proxitok/vendor/bramus/router/src/Bramus/Router/Router.php(440): Bramus\Router\Router->invoke()
#7 /var/www/proxitok/vendor/bramus/router/src/Bramus/Router/Router.php(287): Bramus\Router\Router->handle()
#8 /var/www/proxitok/index.php(17): Bramus\Router\Router->run()
#9 {main}
  thrown in /var/www/proxitok/vendor/pablouser1/tikscraper/src/Helpers/Misc.php on line 35

Do you have an idea where the error may come from? This is the first time I've installed proxitok on Debian.

How to handle https://vm.tiktok.com/*/ URLs?

I'm not exactly "versed" in TikTok stuff on the web, I've never even been on a TikTok website/app, but I often get some URLs sent in a format like https://vm.tiktok.com/ZMRtL2yVX/

(How) can I use these in the front-end? Filling in ZMRtL2yVX as video ID just shows a blank page with nothing in the browser console, so I guess it needs to be processed in another way?

Videos don't load in Safari in either iOS or macOS

For all videos, I get the video not available symbol and an error when attempting to play. Error shown in Web inspector:

Unhandled Promise Rejection: NotSupportedError: The operation is not supported.

Trending broken - TikScraper\Models\Feed::setNav(): Argument #3 ($maxCursor) must be of type string, null given,

Fatal error: Uncaught TypeError: TikScraper\Models\Feed::setNav(): Argument #3 ($maxCursor) must be of type string, null given, called in /var/www/html/vendor/pablouser1/tikscraper/src/Models/Feed.php on line 62 and defined in /var/www/html/vendor/pablouser1/tikscraper/src/Models/Feed.php:17 Stack trace: #0 /var/www/html/vendor/pablouser1/tikscraper/src/Models/Feed.php(62): TikScraper\Models\Feed->setNav(false, NULL, NULL) #1 /var/www/html/vendor/pablouser1/tikscraper/src/Items/Trending.php(43): TikScraper\Models\Feed->fromReq(Object(TikScraper\Models\Response), NULL, '') #2 /var/www/html/vendor/pablouser1/tikscraper/src/Items/Trending.php(27): TikScraper\Items\Trending->feedStandard('') #3 /var/www/html/app/Controllers/TrendingController.php(21): TikScraper\Items\Trending->feed('') #4 [internal function]: App\Controllers\TrendingController::get() #5 /var/www/html/vendor/bramus/router/src/Bramus/Router/Router.php(476): forward_static_call_array(Array, Array) #6 /var/www/html/vendor/bramus/router/src/Bramus/Router/Router.php(440): Bramus\Router\Router->invoke('TrendingControl...', Array) #7 /var/www/html/vendor/bramus/router/src/Bramus/Router/Router.php(287): Bramus\Router\Router->handle(Array, true) #8 /var/www/html/index.php(17): Bramus\Router\Router->run() #9 {main} thrown in /var/www/html/vendor/pablouser1/tikscraper/src/Models/Feed.php on line 17

See: https://proxitok.pussthecat.org/trending

RSS Auto-discovery

It would be great to add an auto-discovery <link> tag to the pages so that browser extensions auto-discover feeds and users can just paste the URL into their feed readers to subscribe rather than trying to search for the link on the page. For example user profiles should have references to the feed for that profile.

Fatal error: Uncaught Error: Typed property TikScraper\Models\Info::$detail [....]

Each time I try to visit URL I get Fatal error: Uncaught Error: Typed property TikScraper\Models\Info::$detail must not be accessed before initialization in /var/www/html/vendor/pablouser1/tikscraper/src/Legacy.php:39 Stack trace: #0 /var/www/html/app/Controllers/UserController.php(13): TikScraper\Legacy->getUserFeed('roro.cat', 0) #1 [internal function]: App\Controllers\UserController::get('roro.cat') #2 /var/www/html/vendor/bramus/router/src/Bramus/Router/Router.php(476): forward_static_call_array(Array, Array) #3 /var/www/html/vendor/bramus/router/src/Bramus/Router/Router.php(440): Bramus\Router\Router->invoke('UserController@...', Array) #4 /var/www/html/vendor/bramus/router/src/Bramus/Router/Router.php(287): Bramus\Router\Router->handle(Array, true) #5 /var/www/html/index.php(14): Bramus\Router\Router->run() #6 {main} thrown in /var/www/html/vendor/pablouser1/tikscraper/src/Legacy.php on line 39

So any ideas how to fix it? I use docker and link is: https://proxitok.esmailelbob.xyz/@roro.cat

Using VideoID causes 403 error

Upon searching for a videoID or going directly to a video page, I am presented with this.

2022-02-14_11-16

Going to a creators page and watching the same video works just fine.

Feature Request: RSS

Thank you for making this frontend! One thing that would be nice is offering an RSS feed for user pages. That way I can follow creators in a centralized way that syncs with all my devices

For reference, this is already done in Invidious (example, source) and Bibliogram (example, source)

Better project name?

This is the first frontend I've ever seen for TikTok so far (great job on it), and having a more recognizable name would help for visibility.

docker-compose error:(SIGNATURE_CONNECTION_ERROR)

Hello, I deployed with docker-compose, the web application is success to access but when go in to a url like https://example.com/@xxx, got a err below:

There was an error processing your request!

HTTP Code: 500

API error code 20 (SIGNATURE_CONNECTION_ERROR)

and I try set the API_FORCE_LEGACY=1, it still now work.

this is my docker-compose.yml:

version: '3'

services:
  web:
    container_name: proxitok-web
    image: ghcr.io/pablouser1/proxitok:master
    ports:
      - 8083:80
    environment:
      - LATTE_CACHE=/cache
      - API_CACHE=redis
      - REDIS_HOST=proxitok-redis
      - REDIS_PORT=6379
      - API_SIGNER_URL=http://proxitok-signer:8080/signature
      - API_FORCE_LEGACY=1
    volumes:
      - proxitok-cache:/cache
    depends_on:
      - redis
      - signer
  redis:
    container_name: proxitok-redis
    image: redis:7-alpine
    command: redis-server --save 60 1 --loglevel warning
    restart: unless-stopped
  signer:
    container_name: proxitok-signer
    image: ghcr.io/pablouser1/signtok:master
volumes:
  proxitok-cache:

Support full TikTok URL paths

Currently, a full proper TikTok link looks like this:

https://www.tiktok.com/@papidog01/video/7025547126109261061

However, ProxiTok provides a view for only this URL pattern:

https://proxitok.herokuapp.com/video/7025547126109261061

One can't simply substitute the domain part. It is required that one tediously removes the <@username> section of the URL. Of course, a browser plugin like LibRedirect can do this step for you, but this needlessly complicates and bloats other software.

I am the maintainer of linkchanbot, a Telegram bot which functions similarly to LibRedirect.

https://sr.ht/~torresjrjr/linkchanbot/

It currently does not have the ability to manipulate link URL paths, and will not for the forseeable future. linkchanbot is meant to be simple. It would be much easier if ProxiTok simply supported the full URL pattern from TikTok.

How feasible is this? Thank you for your time.

Feature Request: Add Username and video ID in metadata?

At the moment when you download a video through this site it downloads as "tiktok-video.mp4" β€” I personally feel like it'd be better if the username or the video ID was added to the file name or metadata, maybe the date in metadata as well?

The fact that the watermark downloads is nice though, maybe that could be turned off somehow? Since websites like https://ssstik.io/ download without a watermark.

Trending doesn't work if the "Legacy mode" isn't set

If the "Legacy mode" isn't set to "Off" by the user, the trending won't work, and will just show an error page:

This settings should ideally be set instance-wide, with an environment variable.

Fatal error: Uncaught TypeError: TikScraper\Models\Meta::getCode(): Return value must be of type int, none returned in /var/www/html/vendor/pablouser1/tikscraper/src/Models/Meta.php:29 Stack trace: #0 /var/www/html/vendor/pablouser1/tikscraper/src/Models/Meta.php(16): TikScraper\Models\Meta->getCode(Object(stdClass)) #1 /var/www/html/vendor/pablouser1/tikscraper/src/Models/Feed.php(37): TikScraper\Models\Meta->__construct(true, 200, Object(stdClass)) #2 /var/www/html/vendor/pablouser1/tikscraper/src/Api.php(36): TikScraper\Models\Feed->fromReq(Object(TikScraper\Models\Response), NULL, '') #3 /var/www/html/app/Controllers/TrendingController.php(19): TikScraper\Api->getTrending('') #4 [internal function]: App\Controllers\TrendingController::get() #5 /var/www/html/vendor/bramus/router/src/Bramus/Router/Router.php(476): forward_static_call_array(Array, Array) #6 /var/www/html/vendor/bramus/router/src/Bramus/Router/Router.php(440): Bramus\Router\Router->invoke('TrendingControl...', Array) #7 /var/www/html/vendor/bramus/router/src/Bramus/Router/Router.php(287): Bramus\Router\Router->handle(Array, true) #8 /var/www/html/index.php(14): Bramus\Router\Router->run() #9 {main} thrown in /var/www/html/vendor/pablouser1/tikscraper/src/Models/Meta.php on line 29

Running my docker image, https://github.com/PussTheCat-org/docker-proxitok-quay

This is an issue on my instance: https://proxitok.pussthecat.org/

PHP compat issues

It would be nice if ProxiTok could work with PHP 7, most LTS distros (like Debian) are still on PHP 7.
I will host ProxiTok once it can run on PHP 7.

cant see multiple pages

EXPLANATION: I search up a tag, user, or whatever, and then when I'm done browsing and get to the bottom and click the "next" button, it keeps saying "no more items sent by TikTok", yet it states there's more under the user/tag

Screen.recording.2022-05-10.19.08.12.mp4

Screenshot 2022-05-10 19 07 22

Optional parameter $config declared before required parameter $legacy

Deprecated: Optional parameter $config declared before required parameter $legacy is implicitly treated as a required parameter in /var/www/html/vendor/pablouser1/tikscraper/src/Api.php on line 17
Deprecated: Optional parameter $legacy declared before required parameter $cache is implicitly treated as a required parameter in /var/www/html/vendor/pablouser1/tikscraper/src/Items/Trending.php on line 11
Deprecated: Optional parameter $legacy declared before required parameter $cache is implicitly treated as a required parameter in /var/www/html/vendor/pablouser1/tikscraper/src/Items/Base.php on line 24

Requesting same video multiple times causes fatal error

When accessing a video and reloading after initialization, the site fails with the following exception:

Fatal error: Uncaught Error: Typed property TikScraper\Items\Video::$item must not be accessed before initialization in /var/www/html/vendor/pablouser1/tikscraper/src/Items/Video.php:50 
Stack trace: 
  #0 /var/www/html/app/Controllers/UserController.php(34): TikScraper\Items\Video->feed() 
  #1 [internal function]: App\Controllers\UserController::video('jathnjoestar', '705960443100388...') 
  #2 /var/www/html/vendor/bramus/router/src/Bramus/Router/Router.php(476): forward_static_call_array(Array, Array)
  #3 /var/www/html/vendor/bramus/router/src/Bramus/Router/Router.php(440): Bramus\Router\Router->invoke('UserController@...', Array)
  #4 /var/www/html/vendor/bramus/router/src/Bramus/Router/Router.php(287): Bramus\Router\Router->handle(Array, true)
  #5 /var/www/html/index.php(17): Bramus\Router\Router->run()
  #6 {main} thrown in /var/www/html/vendor/pablouser1/tikscraper/src/Items/Video.php on line 50

Using release 2.3.0.1 after a fresh install, observed on old instance as well.

Undefined constant TikScraper\Common::DEFAULT_USERAGENT

Follow up to PussTheCat-org/docker-proxitok-quay#3

Every single page trigger this error, making ProxiTok completely unusable.

This seem to be related to a recent change to the docker image zenika/alpine-chrome.

Fatal error: Uncaught Error: Undefined constant TikScraper\Common::DEFAULT_USERAGENT in /var/www/html/vendor/pablouser1/tikscraper/src/Helpers/Signer.php:58 Stack trace: #0 /var/www/html/vendor/pablouser1/tikscraper/src/Helpers/Signer.php(35): TikScraper\Helpers\Signer->setupSelenium('http://proxitok...') #1 /var/www/html/vendor/pablouser1/tikscraper/src/Sender.php(37): TikScraper\Helpers\Signer->__construct(Array) #2 /var/www/html/vendor/pablouser1/tikscraper/src/Api.php(17): TikScraper\Sender->__construct(Array) #3 /var/www/html/app/Helpers/Wrappers.php(88): TikScraper\Api->__construct(Array, Object(App\Cache\RedisCache)) #4 /var/www/html/app/Controllers/UserController.php(14): App\Helpers\Wrappers::api() #5 [internal function]: App\Controllers\UserController::get('memes') #6 /var/www/html/vendor/bramus/router/src/Bramus/Router/Router.php(476): forward_static_call_array(Array, Array) #7 /var/www/html/vendor/bramus/router/src/Bramus/Router/Router.php(440): Bramus\Router\Router->invoke('UserController@...', Array) #8 /var/www/html/vendor/bramus/router/src/Bramus/Router/Router.php(287): Bramus\Router\Router->handle(Array, true) #9 /var/www/html/index.php(14): Bramus\Router\Router->run() #10 {main} thrown in /var/www/html/vendor/pablouser1/tikscraper/src/Helpers/Signer.php on line 58

Using my docker image: https://github.com/PussTheCat-org/docker-proxitok-quay

Error code 504

Hey there :)

Screenshot_20220119-180201_Firefox Nightly

I'm getting this warning when I try to view a video.

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.