Git Product home page Git Product logo

how-to-sane's People

Contributors

anasyb avatar feitian124 avatar globegitter avatar ianvs avatar jamemackson avatar krishnaglick avatar mgenev avatar stefanpenner avatar waffle-iron 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

how-to-sane's Issues

Loading gifs not found

When uploading a photo, the system is unable to find some images.
/img/loading.gif
img/loading-sm.gif

There may be more. I believe this is in \how-to-sane\client\vendor\bootstrap-fileinput\fileinput.js:234
Looks like bootstrap can't find the necessary files.

Cannot find module '/home/vagrant/how-to-sane/client/bower_components/ember/bower.json'

I don't seem to be able to get the how-to-sane app to run - after running npm install in both client and server I get

Cannot find module '/home/vagrant/how-to-sane/client/bower_components/ember/bower.json'
client | Error: Cannot find module '/home/vagrant/how-to-sane/client/bower_components/ember/bower.json'
client | at Function.Module._resolveFilename (module.js:338:15)
client | at Function.Module._load (module.js:280:25)
client | at Module.require (module.js:364:17)
client | at require (module.js:380:17)
client | at Class.module.exports.htmlbarsOptions (/home/vagrant/how-to-sane/client/node_modules/ember-cli-htmlbars/ember-addon-main.js:28:24)
client | at Object.app.registry.add.toTree (/home/vagrant/how-to-sane/client/node_modules/ember-cli-htmlbars/ember-addon-main.js:22:62)
client | at /home/vagrant/how-to-sane/client/node_modules/ember-cli/lib/preprocessors.js:104:26
client | at Array.forEach (native)
client | at processPlugins (/home/vagrant/how-to-sane/client/node_modules/ember-cli/lib/preprocessors.js:103:11)
client | at module.exports.preprocessTemplates (/home/vagrant/how-to-sane/client/node_modules/ember-cli/lib/preprocessors.js:86:10)

I have ran npm install --save bower in /client but it doesn't seem to fix it...

lazy loading

make or find a reusable lazy loading solution for any situation

improve uploader

  • try out the query plugin i found for carousel
  • There’s a bug in my code with the uploader, when photos have been deleted from preview and the ID’s are off, explore

sane up failed by Error: Cannot find module 'which'

i pulled the latest commit c1fd0e1, then npm install, bower install,
then find that sane up failed.

22:11 $ sane up
module.js:338
    throw err;
          ^
Error: Cannot find module 'which'
    at Function.Module._resolveFilename (module.js:336:15)
    at Function.Module._load (module.js:278:25)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (/home/ming/work/sane/lib/tasks/checkEnvironment.js:3:13)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (/home/ming/work/sane/node_modules/traceur/src/node/require.js:65:21)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)

after sudo npm install -g which it is resolved.

write here so anyone who met same problem may get help and we may need an solution or document.

inbox

archive chats in an inbox view like facebook using the admin lte gui

improve geo

  • clean up geo example
    • figure out terrible google maps perf problem
      • make a leaflet based implementation
    • rewrite with es6
  • create an example of binding the query params to a geo search,
    • set defaults for initial call
    • make query params from geoLocation and inputs
    • fix geocoding in the geoGoogle service
    • type address, geocode, query mongo, get results, pin original address 1 color, and results other colors on map
    • pass the params all at once to the with the store.find and a near,
    • then search for what is close to mongo,
    • pin the location for you the browser got, and what is nearest to you like top 3 or something
  • better geo
    • create geo service
    • make the place search be based on query params like pedro’s - distance, type etc.

add tests for all past features

all past features need to be tested before 1.0

  • login
  • registration
  • logout
  • post
    • create
    • index
    • find
  • feed
    • wizard
  • media
    • create album
    • view album
    • upload photos
  • cms
    • create page
    • edit page
    • delete page
    • list pages
    • view page
  • vendors
    • create
    • list
    • search
    • geo
    • host event
  • user profile
  • events
    • create
    • join
    • list
    • search

async buttons

use async buttons everywhere which are aware of the promise state and prevent user from duplicating actions, use async button addon

user roles (permissions)

currently our api security is very rudimentary and nothing stops a user from messing with another one's resource. For this we need a full blown authorization (permissions) solution which allows us a user to have a role - owner, friend, nobody or admin

a solution for sails exists called sails-permissions and ember has similar ones as well. We can fuse the best solution we come up with which can later be spun off as a sane addon

improve gallery

  • show album cover for album thumbs with the silver tack plugin
  • after upload completion show link to the album

improve vendor index

make search view for vendors with keywords, tags, geo, look at notebook wireframes

Build and deploy

According to the sanestack docs a deploy should be posbile by running the following:

From the /client folder:

ember build --environment=production --output-path=../server/assets/

And then from the /server folder

node app.js

The issue is that the index.html file does not get served, you just get the unauthorised error message from the API.

With your example, should the client and the server be deployed decoupled?

improve modals

better modals:
figure out route in modal issue - if you open it from action, it doesn’t register as route, if you open it with link-to right away it doesn’t go through outlet
how to render a component into an outlet?

improve maps

many problems with current maps, think of solution. leaflet replacement is an option

turn the test set up from 'how-to-sane' into a sails generator

Just like in EmberCLI or Grails the idea is that sails generate new api user also produces /tests/controllers/user and /tests/models/user.

I think it's also most logical that sails new app also sets up the /tests folder and the runner

I looked a bit and the sails binary delegates the generate command to this module, which in turn requires the submodules for what you're actually generating:
https://github.com/balderdashy/sails-generate/blob/master/package.json

We'd need to add a new sub module for generate test and then invoke it in the end of the generate api command.

Additionally, it would be good if we can crawl existing models/controllers reotroactively and generate test shells for them too.

Let me know if this all sounds reasonable and what futher thoughts are.

Note: When I say the set up from this repo, I really mean without chai and sinon. Just plain mocha.

cc @Globegitter @IanVS @tjwebb

improve checkin state-picker

  • improve state-picker
  • in check in by putting the states in an array and generating the dom that way i can more easily bind classes and make the active behavior better
  • see if yielding from components out to the template can work

todo/bucketlist

  • allow users to look at vendors, services and locations and add them to bucket list
    • create bucket list model
    • bucket list route
    • template
    • add to bucket list action by fk and type (vendor, service, location) combination

bugs in geo service

ln 46 is hacked in, it shouldn't look for the exact property, it was a quick fix for having no time to properly pass the promise through the functions

overall since moving away from the 3rd party module which wasn't very good, the geocoding is broken because of that and was never successfully tested in the new implementation which is why in the geotest I did before the meetup demo, I simply output the coordinates instead of getting the real address.

Rolling back some commits actually has some valuable code for this, but I haven't had time to revisit and repair it.

improve auth

  • Make the user creation also sign you in
    • Simple auth does a post to logout endpoint, not get, make logout endpoint in sails respond to it and kill the token
    • make tokens renew
    • add unique validator for user name
      make password function standalone (controller) for password changes

make site tour

make a site tour which shows all the features and explains what they demo and link to docs or blogs

  • install addon
  • add all features to tour

sane up failed `can not find mkdirp`

well, sane up seems failed to boot ember, the error message is below:

client   | Error: Cannot find module 'mkdirp'
client   |     at Function.Module._resolveFilename (module.js:336:15)
client   |     at Function.Module._load (module.js:278:25)
client   |     at Module.require (module.js:365:17)
client   |     at require (module.js:384:17)
client   |     at Object.<anonymous> (/home/ming/work/xrp/client/node_modules/ember-cli-less/node_modules/broccoli-less-single/index.js:3:14)
client   |     at Module._compile (module.js:460:26)
client   |     at Object.Module._extensions..js (module.js:478:10)
client   |     at Module.load (module.js:355:32)
client   |     at Function.Module._load (module.js:310:12)
client   |     at Module.require (module.js:365:17)
client   |     at require (module.js:384:17)

i'm not sure if it is same problem like #19 ?

long term vision

The vision has been this - to boil down the common denominator of features between most apps.

To me the obvious ones are:

  • users,
  • social
  • feed
  • posts
  • notifications
  • private messaging
  • vendors
  • events
  • geo
  • cms
  • crm
  • chat
  • media gallery
  • calendar
  • store

all these and any others, in my opinion should be as generic as possible, staying generic serves 2 purposes:

  • it makes the project more useful, because it is reusable and can be built upon as a starting point
  • makes it more feasible - thinking of the 80/20 rule, in my experience 80% of the work is easy, it's the remaining 20% business-specific logic is what takes the majority of the time, we simply won't do the remaining 20%

We do them as a learning project which matures, once it matures we turn it into an app making platform
akin to what wordpress is for CMS, but modern using Sane and Sane addons

I've been thinking of using this as a UI library for the how-to-sane demo, because it's free and generic and already has a lot of the features, but for every spin off app it can be replaced with the desired branding:
https://www.almsaeedstudio.com/preview

My idea has been to at some point fork how-to-sane into sane-startup

  • how-to-sane takes the path of an education platform which teaches how to make the features,
  • sane-startup is the platform which allows a start up to make apps with the sane stack

I understand this is a lot of work, but enough people can get it done and my idea is that the book and the app, just keep growing anyway, not the typical book that gets written and dated in a year, if we do all this, we'll be looking at some of the most useful open source software out there and among the best
way to learn how to make apps.

in a world where tech reigns supreme, this would be a very high standing :)

improve social feed

  • improve feed
    • on the right side, designate an area for an array of user-selected widgets with the component helper - events, vendors, friends, other members in the location, photo widget
    • add support for likes and comments
    • add support for sharing
    • add support for photos
    • make feed periodically request
    • add lazy loading
    • make the component sit on top by default like fb, with the wizard kicking in and popping the state picker in a modal or slide down
    • expand like mapped in notebook - geo, photo etc.
    • think of how to construct feed only of friends statuses:
      what is then in the feed algorithm?
  • original posts by friends
  • shares by friends
  • random likes by friends
  • geo specific suggested content
  • featured content
  • system alerts etc.
  • ads

improve cms

  • port json schema flexibility for unlimited editable fields from nodember
    • posts are designed to be cms blog content, unlike status which is a social feed check in like facebook
    • make images injectable in posts
    • tie pages to vendors
    • make drag and drop upload in ui
    • allow file upload in sails
    • upload template (almost done, need to place in proper folder and reboot server currently??)
    • load and select templates (hbs and json) when creating a homepage
    • set template field on the homepage model, then save
    • render selected template through the renderTemplate hook like nodember
    • make ui for editing home pages easily
      • try to make the divs that render dynamic data into inputs per click and try to match up the size from the style of the div so it maintains the look

calendar

find a good addon, tie to events

push notifications

following up the chat story we easily gain the ability to do push notifications by using the socket down towards the client
we need to create a notification model, which then gets created by other actions like commenting, liking a photo or receiving a chat message and eventually friend request

jshint problems.

there are much jshint problems of current code base, does anyone working on fix this?
if not i'd like to do it tomorrow.

server   |    65:10  error  Expected { after 'if' condition                                               curly
server   |    84:8   error  Expected { after 'if' condition                                               curly
server   |   104:33  error  'sails' is not defined                                                        no-undef
server   |   133:6   error  Expected { after 'else'                                                       curly
server   |   159:28  error  'sails' is not defined                                                        no-undef
server   |   172:11  error  Closing curly brace does not appear on the same line as the subsequent block  brace-st
...

sane up failed

hi @mgenev, i followed the steps, very thing is fine but sane up failed and the error message is too simple for me to resolve, below is the error message.

✔ ~/work/how-to-sane [master|✔] 
22:59 $ sane up

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: spawn ENOENT
    at errnoException (child_process.js:1011:11)
    at Process.ChildProcess._handle.onexit (child_process.js:802:34)

the other steps is quite simple so should be fine, what is below step means?

Install imagemagic and graphicmagic like shown: https://github.com/aheckmann/gm

i'm using ubuntu, i installed both:

sudo apt-get install imagemagick graphicsmagick

then sudo npm install -g gm

could you help? thank you.

bugs in post status wizard

  • enter key doesn't post form properly
  • model is detached from wizard, it must have broken at some point

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.