def create_project(name, include_examples=True):
        '''
        creates the initial project skeleton and files
        :param name: the project name
        :return:
        '''

        # from the start directory, create a project directory with the project name
        path = "{}/{}".format(os.getcwd(), name)
        if os.path.exists(path):
            return None, "path {} already exists".format(path)

        print(bright("creating new ezo project '{}".format(name)))

        # make project directory
        os.mkdir(path)
        print(bright("created project directory: '{}".format(path)))

        # create an empty contracts directory
        contracts_dir = "{}/{}".format(path, "contracts")
        os.mkdir(contracts_dir)
        print(bright("created contract directory: '{}".format(contracts_dir)))

        if include_examples:
            c = [(create_sample_contracts_1(), 'contract1.sol'), (create_sample_contracts_2(), 'contract2.sol')]
            for s in c:
                c, fn = s
                file_path = "{}/{}".format(contracts_dir, fn)
                try:
                    with open(file_path, "w+") as outfile:
                        outfile.write(c)
                except Exception as e:
                    print(bright("problem creating sample file: '{}".format(path)))
                    return None, e
                print(bright("created sample contract: '{}".format(fn)))

        # create the handlers directory
        handlers_dir = "{}/{}".format(path, "handlers")
        os.mkdir(handlers_dir)
        print(bright("created handlers directory: '{}".format(handlers_dir)))

        # leveldb directory (created by level)
        leveldb = "{}/{}".format(path, "ezodb")

        # create the initial config.json file
        cfg = create_blank_config_obj()

        cfg["ezo"]["contract-dir"] = contracts_dir
        cfg["ezo"]["handlers-dir"] = handlers_dir
        cfg["ezo"]["project-name"] = name
        cfg["ezo"]["leveldb"] = leveldb
        print(bright("creating configuration: '{}".format(path)))

        # write the file to the root project dir
        config_file_path = "{}/{}".format(path, "ezo.conf")
        try:
            with open(config_file_path, "w+") as outfile:
                json.dump(cfg, outfile, indent=2)
        except Exception as e:
            print(bright("problem creating configuration file: '{}".format(path)))
            return None, e

        return None, None
creates the initial project skeleton and files
        :param name: the project name
        :return: