Giter VIP home page Giter VIP logo

framework's Introduction

Nova Framework

Nova Framework

Total Downloads Dependency Status GitHub license GitHub stars GitHub forks

Join the general chat open to all at https://gitter.im/nova-framework/framework

What is the Nova Framework?

Nova Framework is a PHP 7.1 MVC system. It's designed to be lightweight and modular, allowing developers to build better and easy to maintain code with PHP.

The base framework comes with a range of helper classes.

Requirements

The framework requirements are limited.

The following PHP extensions should be enabled:

  • Fileinfo (edit php.ini and uncomment php_fileinfo.dll or use php selector within cpanel if available.)
  • OpenSSL
  • INTL
  • MBString

Note: Although a database is not required, if a database is to be used, the system is designed to work with a MySQL database using PDO.

Installation

This framework was designed and is strongly recommended to be installed above the document root directory, with it pointing to the webroot folder.

Additionally, installing in a sub-directory, on a production server, will introduce severe security issues. If there is no choice still place the framework files above the document root and have only index.php and .htacess from the webroot folder in the sub folder and adjust the paths accordingly.

Recommended

The framework is located on Packagist.

You can install the framework from a terminal by using:

composer create-project nova-framework/framework foldername 4.* -s dev

The foldername is the desired folder to be created.

Note: You can install the bare application variant from a terminal by using:

composer create-project nova-framework/app foldername 4.* -s dev

Note: For additional installation instructions, for example; setting up a Virtualhost (Recommended for Local Development), Nginx or IIS with URL Rewrite, please visit the install docs.

Documentation

Full docs & tutorials are available on novaframework.com.

Screencasts are available on https://novaframework.com/screencasts.

Contributing

Issue Tracker

You can find outstanding issues on the GitHub Issue Tracker.

Pull Requests

  • Each pull request should contain only one new feature or improvement.
  • Pull requests should be submitted to the correct version branch ie 4.0/master

Code Style

All pull requests must use the PSR-2 code style.

  • Code MUST use the PSR-1 code style.
  • Code MUST use 4 spaces for indenting, not tabs.
  • There MUST NOT be a hard limit on line length; the soft limit MUST be 120 characters; lines SHOULD be 80 characters or less.
  • There MUST be one blank line after the namespace declaration, and there MUST be one blank line after the block of use declarations.
  • Opening braces for classes MUST go on the next line, and closing braces MUST go on the next line after the body.
  • Opening braces for methods MUST go on the next line, and closing braces MUST go on the next line after the body.
  • Visibility MUST be declared on all properties and methods; abstract and final MUST be declared before the visibility; static MUST be declared after the visibility.
  • Control structure keywords MUST have one space after them; method and function calls MUST NOT.
  • Opening braces for control structures MUST go on the same line, and closing braces MUST go on the next line after the body.
  • Opening parentheses for control structures MUST NOT have a space after them, and closing parentheses for control structures MUST NOT have a space before.

License

The Nova Framework is under the MIT License, you can view the license here.

framework's People

Contributors

acidvertigo avatar amiroperator avatar andre2 avatar avenirer avatar cahyadsn avatar coyal avatar daveismynamecom avatar donwagner avatar dybo avatar efalah avatar felipehertzer avatar g5pw avatar geomorillo avatar halfhope avatar l2wok avatar luckycyborg avatar m4rcdev avatar mallak avatar nekomajin avatar omarelgabry avatar pandory-network avatar rtorralba avatar secretd avatar shinjikou avatar sommmen avatar tomvlk avatar viraj-khatavkar avatar volter9 avatar woodsy1 avatar xtro123 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

framework's Issues

New features

I would love to keep contributing to this project, but I have no idea what to do next.
Does anyone have an idea for a useful feature or something else?

Move routes to it's own file

Hi All,

I recently had a PR with to move routes to it's own file, the more I think about it the more I like it, before making a change I want to ask what are people's thoughts on this?

Functionality wise it would work the same the routes would be placed in a separate file called routes.php inside the Core folder. The reason it's routes.php and not Routes.php is the file would not be a class.

the index.php file where routes are would be replaced with an include to look like this:

//call config
new Core\Config();

require 'app/Core/routes.php';

Database function to create table

Hi, thank you very much for this great work.

I really want You to add a function to create a table in the database.
Sorry for my bad english :)

Thank you

Routing issue. Loosing namespace when instantiating the controller class

Hi David,

I have an issue with the router.... it doesn't work ;) in V2.1 with namespace
I believe the issue is located in the method invokeObject of the router.

First it uses the seperator '/' while we write our route controller part using the ''.
Then, when it explode the $last part, we end up with classname and methodname and endup loosing the namespace.

Therefore, when instantiating the controller it tries new classname instead of new namespace\classname.

If I get the concept correctly I think it should be more like this:

$parts is useless,
$segments = explode('@',$callback);
$controller = new segments[0]($msg); // Now you'll have the entire namespace '\controllers\myfolder\classname'

invokeObject method in router for PHP7

Have you had a chance to fully test @volter9 #175 pull request? I ask since I see you made some recent updates, and upped ver to 5.5 or greater php. Remember, in issue #174 three different techniques worked. Of course I relize you may be waiting till final release of php 7. But could you at least put one of the newer methods in the invokeObject method in router, that way it would already work in php 7. That's not to say later you could do more tweaks here and there in framework in November when final realease of php 7 hits. My test was on a windows development machine with php 7.0.0RC1 (anything prior is null and void due to massive changes), I hope you can test on a linux enviroment with php 7 (latest release candidate).

Request helper

Sorry I didn't know where else to put this. In the Request helper I am only confused in the Request::isAjax() part. The post and get I have no questions. I had this code prior which is an ajax request to return some data:

public function getowner()
    {
        $this->chkLog(); 
            $ownerid = $_GET['id'];
            $data['oList'] = $this->Owner->getownerList2($ownerid);

            foreach ($data['oList'] as $row) {

                $idnew = $row->ownerid;
                $petowner = $row->oname;
                $ostreet = $row->ostreet;
                $odate = $row->odate;
                $ocheck = $row->ocheck;
           }
            $return_value = $idnew . "|" . $petowner . "|" . $ostreet . "|" . $odate . "|" . $ocheck;
            echo $return_value;
       }

Now using the new Request helper is the below new code correct?

public function getowner()
    {
        $this->chkLog();
        if (Request::isAjax() == TRUE) {
            $ownerid = $_GET['id'];
            $data['oList'] = $this->Owner->getownerList2($ownerid);
            foreach ($data['oList'] as $row) {
                $idnew = $row->ownerid;
                $petowner = $row->oname;
                $ostreet = $row->ostreet;
                $odate = $row->odate;
                $ocheck = $row->ocheck;
            }
            $return_value = $idnew . "|" . $petowner . "|" . $ostreet . "|" . $odate . "|" . $ocheck;
            echo $return_value;
        } else {
            echo "no work or what goes here";
        }
    }

Am I using it correctly or not? If not can you give a detailed example to correct my code?

The jquery that does the request to this controller method is:

 $(function () {

        $("#myTable td:nth-child(1)").click(function (event)
        {
            event.preventDefault();
            var $td = $(this).closest('tr').children('td');
            var currentCellText = $td.eq(0).text();
            var CellText = $td.eq(1).text();

            $.ajax({
                url: '<?php echo DIR . "owner/getowner"; ?>',
                type: 'GET',
                data: 'id=' + currentCellText,
                success: function (data) {
                    var mystr = data.split("|");
                    window.opener.$('#ownerid').val(mystr[0]);
                    window.opener.$('#petowner').val(mystr[1]);
                    window.opener.$('#ostreet').val(mystr[2]);
                    window.opener.$('#odate').val(mystr[3]);
                    if (mystr[4] == '1')
                    {
                       window.opener.$('#ocheck').attr('checked', true);
                    }
                    else
                    {
                      window.opener.$('#ocheck').attr('checked', false);
                    }


                    self.close();
                }
            });
        });

Any help would be appreciated, I want to understand the isAjax part and how to correctly use it.

Backend view

Hi, how to create a backend view for admin area?
Thanks

Session pull function

Hello, as I seen this item should be called pop function based on its functionality.

Use model on helper?

Hello, how i can use model in helper like controller?

i try with this:

<?php namespace helpers;

class Data {

    private $_cms;

    public function __construct() {
        parent::__construct();

        $this->_cms = new \models\my_model();
    }

    public function role($role){
        $data = $this->_cms->get_role(Session::get('username'));
        return $data;
    }

}

but server response me:

 Fatal error: Call to a member function get_role() on a non-object in

thanks! and best regards

Add support to PDO::FETCH_CLASS

Hi,

The current select method doesn't give the option to use the PDO::FETCH_CLASS fetch mode. To make it work the fetchAll method needs a second argument, a string with the class name.

$stmt->fetchAll($fetchMode, 'Class');

I've made the changes in this PR.

Thanks.

DB_PREFIX constant

Just wonder, what should this constant do? It seems that there's no use for it. I suppose that you could implement this feature (table prefixing) by extending 'query', 'prepare' and 'exec' of PDO instance. Like replacing '__' (double underscore) with table prefix in sql query.

Something like this:

    public function query ($sql, ...) {
        $sql = str_replace('__', DB_PREFIX, $sql);

        return $this->query($sql, ...);
    }

Where '...' is other parameters.

P.S.: Sorry if I'm being too active with integrating new features ๐Ÿ˜†

About app/core/config.example.php

Hello!

It's very hard to modify and then request a pull request with config.example.php, by that I mean, every time I want to request a pull request, I need first to rename config.example.php, then test the application on new modifications, and then I need to rename config.php back to config.example.php. Maybe we should return config.php instead of each time do the same action (rename config.example.php to config.php)?

[Feature]Auto Dispatch

Why don't you add auto dispatch feature? That would be very handy.

Something like this:

public static function autoDispatch () {
    new \core\config;

    $uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
    $uri = trim($uri, ' /');

    $parts = explode('/', $uri);

    $controller = $uri !== ''      && isset($parts[0])  ? $parts[0] : DEFAULT_CONTROLLER;
    $method     = $uri !== ''      && isset($parts[1])  ? $parts[1] : DEFAULT_METHOD;
    $args       = is_array($parts) && count($parts) > 2 ? array_slice($parts, 2) : array();

    // Check for file
    if (!file_exists('app/controllers/' . $controller . '.php')) {
        // Process 404 here 
        self::processRoute(self::$error_callback, 'No routes found.');

        return;
    }

    $controller = '\controllers\\' . $controller;
    $c = new $controller;

    if (method_exists($c, $method)) {
        $c->$method($args);
    }
}

This method would find controller, method and arguments for controller.
Similar to CI's routing: /controller/method/arg1/arg2/and/so/on

Where DEFAULT_CONTROLLER and DEFAULT_METHOD are the constants that do what they sounds. self::processRoute is static method that I created, because you guys too much of repetition in dispatch method (same lines three times!).

What do you think?

P.S.: couldn't find how to add a question label ๐Ÿ˜•

model issue

Hi,

I'm trying to get datas from database and getting error.

Fatal error: Using $this when not in object context in /Applications/MAMP/_2mynew/app/models/test.php on line 16

can you tell me what the problem is?
line 16 -> return $this->_db->select('SELECT * FROM '.PREFIX.'users');

if i do this then it works
return \helpers\database::get()->select('SELECT * FROM '.PREFIX.'users');

Thanks

Router::post issue / .htaccess

Hello guys! Nice framework you're created, however, Router::post shows 404, however with Router::any it works, but it seems that _POST variable being lost on the way. Fortunately, I could figure out the problem and solve it. The problem is in .htaccess

Changing line:

RewriteRule ^(.+)/$ $1 [R=301,L]

to

RewriteRule ^(.+)/$ $1 [R=307,L]

Would fix it! Please update .htaccess, thank you!

Continuous redirects

Hi, I'm trying this simple framework for one hour now and I encounter this problems after i create a folder outside app.

I don't know if I am the only one who tried to add a folder outside app.

The problem is the .htaccess trailing slash removed.

here is my simple fixed:
Options -Indexes

RewriteEngine On
RewriteBase /

Force to exclude the trailing slash

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.*)/$
RewriteRule ^(.+)/$ $1 [R=307,L]

Allow any files or directories that exist to be displayed directly

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?$1 [QSA,L]

PS: i didn't fork and pull requests because it's just a small bug. maybe next time. :D

Paginator

At the line 192 the tags is not closing due the condition on lines 195-196.

router.php: autoDispatch() - error handling

Hi,

router.php: autoDispatch() should use the default controller for "http://server/method"
but it doesn't. instead you get a blank screen. It also doesn't give you an error when it can find something.

So I created a fix:
When you go to "/somthing" it automatically selects the default controller.
However if it finds a controller but not a method it will automatically
choose the default method for that controller. It gives you a 404 error it it can't find a controller and a method.

I have commited this change to my fork: https://github.com/danieljsamson/v2

Feel free to pull it from there.

autoDispatch - default method and controller error

When changes "fallback" to "true" after opening the home page, we see no welcome/index only 404.
define the config.php does not go into router.php

This error is visible after remove:

Router::any('', '\controllers\welcome@index');

Error:

Notice: Use of undefined constant DEFAULT_CONTROLLER - assumed 'DEFAULT_CONTROLLER' in C:\WWW\app\core\router.php on line 104
Notice: Use of undefined constant DEFAULT_METHOD - assumed 'DEFAULT_METHOD' in C:\WWW\app\core\router.php on line 105

Error with PDO::prepare() from the updated database.php

New database.php under helpers namespace throws the error below

Error on Oct 13, 2014 9:51AM - PDO::prepare() [pdo.prepare]: SQLSTATE[00000]: No error: PDO constructor was not called in C:\wamp\www\danfo\app\helpers\database.php on line 75

I think the problem lies in the way the extended PDO constructor is being initialized

I have encountered this error twice within d space of two days, I changed to the old database.php and everything works fine.

DIR constant

Do we really need to hardcode site URL in the DIR constant?
What's about

Helpers\Url

public static function base($full = false)
{
    if($full) {
        return sprintf("%s://%s%s", isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off' 
        ? 'https' : 'http', $_SERVER['SERVER_NAME'], $_SERVER['REQUEST_URI']);
    }

    return str_replace(array('\\',' '), array('/','%20'), dirname($_SERVER['SCRIPT_NAME']));
}

Lowercase naming convention

Hello, I just wonder what is the convention for naming the classes of current framework?
Is there any preferred stylistics to use while adding new helpers and classes?

And what's with lowercase naming convention? A boycott against mainstream PascalCase naming ๐Ÿ˜„

Thanks for reply!

logger

the logger filer is causing errors when trying to test the frame on php 7. Got this from apache error log:

[Sat Aug 01 12:02:26.643500 2015] [:error] [pid 6604:tid 1156] [client ::1:53193] PHP Fatal error:  Uncaught TypeError: Argument 1 passed to Core\\Logger::newMessage() must be an instance of Exception, instance of Error given, called in C:\\Bitnami\\wampstack-7.0.0beta2-1\\apache2\\htdocs\\fm\\app\\Core\\Logger.php on line 56 and defined in C:\\Bitnami\\wampstack-7.0.0beta2-1\\apache2\\htdocs\\fm\\app\\Core\\Logger.php:86\nStack trace:\n#0 C:\\Bitnami\\wampstack-7.0.0beta2-1\\apache2\\htdocs\\fm\\app\\Core\\Logger.php(56): Core\\Logger::newMessage(Object(Error))\n#1 [internal function]: Core\\Logger::exceptionHandler(Object(Error))\n#2 {main}\n  thrown in C:\\Bitnami\\wampstack-7.0.0beta2-1\\apache2\\htdocs\\fm\\app\\Core\\Logger.php on line 86

Is there a way to test for php ver, and have the framework also work on php 7. I'm sure other want to test/play with php 7 as well.

Session(Helper class) destroy function unsets all sessions

The destroy function of the session helper class unsets all set sessions including the template_path set in the config class.

I made a little tweak to the function to destroy by session key instead.
public static function destroy($key){

    if(self::$_sessionStarted == true){
        unset($_SESSION[SESSION_PREFIX.$key]);
    }

}

I have created a pull request to that effect.

double use of helpers class

@Daveismyname,

in app/templates/default/header.php and app/templates/default/footer.php you include the helper classes

use Helpers\Assets;
use Helpers\Url;
use Helpers\Hooks;

twice. Is that necessary? Only a question.

Database Helper mysql KEYS bug!

If there is a column in the database with NAME defined in mySQL command set the database helper throws an Exception.

Specifically i have a column named FROM and one named TO after struggling for half hour realized it that the database helper didnt escaped the keys at all.

I suggest a minor fix to this problem:

  • Change helpers/database.php insert function line 4th:

from: $fieldNames = implode(',', array_keys($data));

to: $fieldNames = implode(',', array_keys($data));

  • and the 8th line

from: $stmt = $this->prepare("INSERT INTO $table ($fieldNames) VALUES ($fieldValues)");

TO : $stmt = $this->prepare("INSERT INTO $table ($fieldNames) VALUES ($fieldValues)");

The ` symbol escapes the column name.

  • Same fix can be applied to update function :

public function update($table, $data, $where){
ksort($data);
$fieldDetails = NULL;
foreach($data as $key => $value){
FIX-------------> $fieldDetails .= "$key = :$key,";
}
$fieldDetails = rtrim($fieldDetails, ',');
.....

  • AND to delete function
    ...
    ...

    foreach($where as $key => $value){

        if($i == 0){
    

FIX ----> $whereDetails .= " $key = :$key";

        } else {

FIX ------> $whereDetails .= " AND $key = :$key";

        }

PS : I dont know if ` will work on all databases but in mySQL it fixed my probs.

Module views appears after the body tag

Hi!

When I create a module according your screencast in a clean installation, the blog view appears on top of every page (welcome and subpage) right after the body tag. (see image)

When I create another view it also apperears on top of the page.

Is this a bug or am I doing something wrong?

Thanks for your hard work.
I really like this framework!

Richard

image

php 7 throwable interface

Not a bad issue but a test.
Well now I am testing php 7.0.0RC1 and now they have done away with the engineException and the manual says to extend Exception. So far SMVC is working with Dave's original Core\Logger as is. The only thing now I had to do to work with php 5.5 and php 7.0.0RC1 is in the router, have a look:

public static function invokeObject($callback, $matched = null, $msg = null)
    {
    if (defined('PHP_MAJOR_VERSION') && PHP_MAJOR_VERSION >= 7) {

        //=============php 7 
        //grab all parts based on a / separator and collect the last index of the array
        $last = explode('/', $callback);
        $last = end($last);

        //grab the controller name and method call
        list($controller, $method) = explode('@', $last);

        //instanitate controller with optional msg (used for errorCallback)
        $controller = new $controller($msg);

        if ($matched == null) {
            //call method
            $controller->{$method}();
        } else {
            //call method and pass in array keys as params
            call_user_func_array(array($controller, $method), $matched);
        }

    }
    else {   

        //========= end php7==========================================

        //===========php5.5
        //grab all parts based on a / separator and collect the last index of the array
        $last = explode('/', $callback);
        $last = end($last);
        //grab the controller name and method call
        $segments = explode('@', $last);
        //instanitate controller with optional msg (used for errorCallback)
        $controller = new $segments[0]($msg);
        if ($matched == null) {
            //call method
            $controller->$segments[1]();
        } else {
            //call method and pass in array keys as params
            call_user_func_array(array($controller, $segments[1]), $matched);
        }
      //========== end php5.5=============================
    }   


    } 

The

public static function invokeObject($callback, $matched = null, $msg = null).......

is the only method (function) in the router I had to test for php versioning. All other methods work as is.
I am still trying to figure out how to handle JSON in dual versions, php 7 is now jsonp I believe.
@volter9 if you see this, please some feedback.

CSS & JS assets

Hello Simple MVC Framework users!

Last few days there was going on a pull requests about including CSS & JS assets right into templates using $data with css and js indices. I want just to express my opinion about those assets hard-coded into templates: it's not a good idea.

Simple MVC Framework is a PHP framework, it shouldn't have hard-coded css and js assets, that's not right.

views question

Whats is the difference between the:

$this->view->rendertemplate('header',$data);
$this->view->render('welcome/welcome',$data);
$this->view->rendertemplate('footer',$data);

And this

View::rendertemplate('header',$data);
View::render('welcome/welcome',$data);
View::rendertemplate('footer',$data);

all works

Multilanguage website

Has anyone succesfully managed to get a multi language website going? If so, can you explained how you managed to actually change the lang, I am trying to do it through sessions, but for some reason it is not setting and keeps the same language no matter what.

Simple MVC, Visual Studio PHP Tools

I can't get my Simple MVC project to work in Visual Studio with the plugin PHP Tools. I keep getting a 404 below saying no routes found. This works in Apache.

Router::post('/launch', '\controllers\ToolLaunchController@handleRootToolLaunch');

Any clue on where to start or look?

Site Optimization

My site built with smvc framework takes an average of 7s to load. How do I optimize further with framework. Suggestions and tips are welcome.

Should Core\Controller be regular class, not abstract

I know somehow the router is working, however in netbeans ide I get:

Abstract class \Core\Controller can not be instantiated

It happens here at line 126:

$c = new $controller;

The new key word isn't supposed to work with an abstract class, but yet the router is working.
I am no expert on writing router code, so could someone shed some light on how the router is still working anyway -- thanks.

Can't Access a Class

Hai,

Class name and file.php not the same, I have a problem when I upload my application to web hosting, (Unix is Case Sensitive)
I mean, if the class name = "App" then the name of the file should be "App.php" not "app.php"

Class 'core\Controller' not found in /home/xxxxx/public_html/report/app/core/model.php on line 11

I found a problem, controller class name is not same with the file name
your controller: "controller.php" but the name of class is "Controller"

you probably understand what I mean.

btw this is very good framework,, i realy enjoyed with this framework..
Sory, my english is Bad.. :(

Bug with the database

There is still a bug with the database. In database.php we say return instance when there is already one instance.

    // Checking if the same 
    if ( isset(self::$instances[$id]) ) {
        return self::$instances[$id];
    }

In our Model we say we want a new database but what if we want to return an existing one?

    /**
    * create a new instance of the database helper
    */
    public function __construct(){
        //connect to PDO here.
        $this->_db = new \helpers\database();
    }

I think we should return an instance to the Model instead of declaring a new one.

Route error, space URI

Hi, i'm testing the code, and i have an space in my URL, if i specify the route Router::any('asd', 'Controllers\Section@index');
URL is like: http://localhost:8080/CLIENT%202015/web.com/asd
AND the URI is read like: /CLIENT 2015/web.com/asd

In the Router.php dispatch() function, says:
if (in_array($uri, self::$routes)) {
}

But, return false because the route and uri are different.

Sorry by my english, i hope i can help.

prefixing sessions?

Hi, you have a good looking framework here, as I am learning to make my own, I see something I like, but didn't quite get why you decided to prefix sessions?

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.