Git Product home page Git Product logo

lunchclass / absolute Goto Github PK

View Code? Open in Web Editor NEW
103.0 16.0 31.0 26.29 MB

Absolute is a web-based O2O(Online to Offline) platform like Siren-Order for Starbucks. We are focused on creating the platform that is portable, cheaper, easier, decentralized and appless.

License: Apache License 2.0

Batchfile 1.71% Shell 33.72% TypeScript 62.85% HTML 1.72%
o2o o2oplatform web pwa pwa-apps webstandard webapp absolute

absolute's People

Contributors

coconutperm avatar cs-lee avatar daehyunjimmy avatar elliekwon avatar faruk13 avatar garlicb avatar gitdongguri avatar gogag2 avatar haeungun avatar hyungheo avatar jaycheck avatar llighter avatar nadongguri avatar newklus avatar rockplani avatar romandev avatar sapzape avatar sphilee avatar taxookim avatar theairbend3r avatar wuseok avatar yeonsuyam avatar yjaeseok 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

absolute's Issues

Does it works well in 32bit systems?

We are not sure that our project is working well in 32bit systems such as win 32bit, linux 32bit.
How can we test them? (Especially, windows?)

We should use |import| instead of |require()|.

For example, in server.js

const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');
....

We should change the above codes as follows:
import express from 'express';
import path from 'path';
import body_parser from 'body-parser';

Clean-up win-bash direcotry (or reset?)

I'm not sure but there are some unnecessary files in the third_party/win-bash. (e.g. window.cmd?)
I don't know why it includes the unnecessary files but we should anyway remove them.

[Hackathon] Admin Page

admin1 password
admin2 orders
admin3 statistic
admin3 manage
admin4 settings

Schedule 이나 timer 는 Orders 메뉴에서 임시로 일괄 Push / Schedule Push 를 넣으면 될것으로 생각함

Should provide git hooks for good developer environment.

Especially, we should run 'lint' command whenever developer commits his/her patch locally.
But how can we provide them smoothly? The git hook files should be located in .git/hooks/ but it's an untracked path. So, we probably should provide them in our repo and then copy them into the git hook directory when developer runs 'absolute' command at first.

node_module's bin folder of window is in '/server/' issue.

When install npm package, npm binary file is in /server/ folder to window os.

I guess npm path refer global bin directory like below.

nodejs/.../gently-rm-linked-modules.js

  var globalBin = resolve(linkedGlobal, isWindows ? '.' : 'bin', 'linked')
  // on window os, use path '.' this is concept for nodejs.

  var globalModule = resolve(linkedGlobal, isWindows ? '.' : 'lib', 'node_modules', '@test', 'linked')
  var localBin = resolve(workingDir, 'node_modules', '.bin', 'linked')
  var localModule = resolve(workingDir, 'node_modules', '@test', 'linked')

nodejs/.../build.js

// if it's global, and folder is in {prefix}/node_modules,
// then bins are in {prefix}/bin
// otherwise, then bins are in folder/../.bin
var parent = pkg.name && pkg.name[0] === '@' ? path.dirname(path.dirname(folder)) : path.dirname(folder)
var gnm = global && npm.globalDir
var gtop = parent === gnm

function linkBins (pkg, folder, parent, gtop, cb) {
console.log("TWHY : linkBins parent=" + parent + ", gtop=" + gtop); //<--- gtop is true;
if (!pkg.bin || !gtop && path.basename(parent) !== 'node_modules') {
return cb()
}
var binRoot = gtop ? npm.globalBin //<--- use globanBin path.
: path.resolve(parent, '.bin')

I don't know why 'gtop' value is true. need more survey.

Investigate which database solution to use.

We need to investigate the database solution for our project. We should use a database that is cross-platform oriented, requires no installation, is distributed, and uses a socket.

The most database solution that works with node.js is implemented as a back-end that operates separately and provides a driver that can bind in node.js.

The following database solutions were investigated.

  • Noms : This is the most ideal database, but it does not support the window environment. (There is no plan in the future.)
  • MongoDB : Express is the most used database, but window needs to be installed.
  • Levelup : No need to install, but access to file directly without using socket.
  • Cassandra : By default, it does not support window environment. If you use DataSax, you can use it on Windows. But window needs to be installed.

In addition, express and frequently used solutions are as follows.

  • Couchbase
  • CouchDB
  • MySQL
  • Neo4j
  • PostgreSQL
  • Redis
  • SQL Server
  • SQLite
  • ElasticSearch

Test automation

To write safer code, we should consider to introduce test automation ways.

  • How can we test platform dependent codes?
    • Do we need test servers?
  • How can we test server side codes?
    • There might be Node JS modules for unit test.
  • How can we test client side codes?
    • Do we need to consider cross-browsing?

Testing server for windows

Travis is working for this project but it does not support the windows-os.

This project should support windows environment also.

So additional ci-service should be made for windows-os

Nodemon is not working when it run with forever.

forever's child process cannot find nodemon package.
I guess this problem is spawn's path issue by --prefix option of npm.

======================================

  • Error logs.
    events.js:160
    throw er; // Unhandled 'error' event
    ^

Error: spawn nodemon ENOENT
at exports._errnoException (util.js:1022:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
at onErrorNT (internal/child_process.js:359:16)
at _combinedTickCallback (internal/process/next_tick.js:74:11)
at process._tickCallback (internal/process/next_tick.js:98:9)

How can we support virtualization for Node JS binary?

There are some solutions here, but they have not been verified.

We have to investigate above list and more things as follows:

  • Can it support all platforms (at least Linux, Mac, Windows)?
  • Whether it requires additional installation.
  • Can it independent between Node modules and platforms?

[Hackathon] Push API

  • need to support Samsung Browser and Chrome(currenltly only Chrome works normally)
  • need to support re-Request api for push

We need to check downloading file integrity.

We are checking nodejs and mongodb directory.
If there is no folder, we will download each one.

But if it failed when we are downloading, we get directory, but file is not enough to run.
So we need to check downloading file integrity.

Below log is when downloading failed.
KOs-iMac:absolute kobyoungkwon$ ./run.cmd
./scripts/run: line 25: platform: command not found
./scripts/run: line 14: platform: command not found
./scripts/run: line 18: /Users/kobyoungkwon/romandev/absolute/platform/nodejs/bin/npm: No such file or directory
./scripts/run: line 19: /Users/kobyoungkwon/romandev/absolute/platform/nodejs/bin/npm: No such file or directory

Should update node_modules when only package.json is changed.

Currently, node_modules are installed/updated whenever users run |absolute start| command.
But it's too inefficiency. Moreover, we don't need to install them again. (updating is enough).
So, we should make it update when only package.json is changed.

Mongo db file path issue

We use mongodb database solution for our project.
And we should define options for mongodb like logPath and dbPath.. and so on.

So, We need talk about path and make config file.

We have three issues.

  1. where is dbPath?
  2. where is logPath?
  3. what is better between 2 case.
    1. 'make config file and commit to absolute repo'
    2. 'make config file when run script.' <-- I expect.

let's talk about this!

No executable absolute - 1 (Mac OS)

There's two issue

1st: Permission denied

Hyung-ui-iMac:absolute sunemo83$ ./absolute start
/Users/sunemo83/my_git/romandev/absolute/bootstrap/command/start_db: line 10: /Users/sunemo83/my_git/romandev/absolute/bootstrap/command/stop_db: Permission denied
warn: --minUptime not set. Defaulting to: 1000ms
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info: Forever processing file: ./database.js
/Users/sunemo83/my_git/romandev/absolute/bootstrap/command/start_server: line 10: /Users/sunemo83/my_git/romandev/absolute/bootstrap/command/stop_server: Permission denied
warn: --minUptime not set. Defaulting to: 1000ms
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms

2nd: Forever cannot find process with id: ./database.js

Hyung-ui-iMac:absolute sunemo83$ ./absolute start
error: Forever cannot find process with id: ./database.js
warn: --minUptime not set. Defaulting to: 1000ms
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info: Forever processing file: ./database.js
error: Forever cannot find process with id: ./server.js
warn: --minUptime not set. Defaulting to: 1000ms
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info: Forever processing file: ./server.js

Info of my environment
{
ProductName: Mac OS X
ProductVersion: 10.12.3
BuildVersion: 16D32
}

Issue version
{
commit b7a7d15
Author: Taeyun Kim [email protected]
Date: Wed Mar 1 00:09:44 2017 +0900

Apply mongodb script (#104)

}

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.