goodybag / lunchroom

Daily meal deals
https://lunchroom.goodybag.com
0 stars 0 forks source link

[Final-Post-Launch] Refactor by Christoph Dorn (incorporate learning and streamline dev) #27

Closed cadorn closed 8 years ago

cadorn commented 9 years ago

As I implemented the lunchroom I did so using existing libraries such as backbone and react and wired them up in such a way that the whole backend and front-end can be declaratively driven.

It is becoming apparent that the wiring that these higher-level libraries require is getting in the way more than helping and I hope to toss it in favour of a much cleaner solution that is JSON document and folder layout driven using a webpack plugin to hoist and export the code as I do with React/JSX now.

I am proposing on doing this work on my own time and will coordinate with you where needed. I expect a lot of this stuff to be done sooner than later as I will be actively working on the component system and cloud9 plugin.

A list of changes as they come up:

cadorn commented 9 years ago

Setup templates for:

at https://github.com/ide-templates to handle all tooling requirements so that project only contains dependencies actually needed by project implementation itself.

cadorn commented 9 years ago

Remove react in favour of virtual-dom which allows modification of created DOM. i.e. it does not hoard the DOM so you can use jquery to make modifications.

cadorn commented 9 years ago
cadorn commented 9 years ago
cadorn commented 9 years ago

Advanced component example: https://github.com/goodybag/lunchroom/blob/f378cc53a3a3a3faa4bc53528dcf6a693f51ff6d/components/GBL_View_Checkout/skin.app.jsx

cadorn commented 9 years ago

I have a new core system/app template (tested with nodejs 4) deploying to heroku and am now porting the lunchroom app to run using the template (and getting new admin skin to work). Once that works I'll be refactoring the app to use all the features of the template at which point it will be secure, clean and reliable and all outstanding technical issues will be closed.

I hope to run you through the code and local install next week (when the app is ported and somewhat cleaned up). We can then tackle user accounts using the new framework which should make it much easier to implement and wrap up the project.

cadorn commented 9 years ago
cadorn commented 9 years ago

The clean app shell is pushed and deployed: https://github.com/goodybag/lunchroom-app Have not tested independent install yet. Will do so next week. Now to merging the ported app ...

cadorn commented 9 years ago
cadorn commented 8 years ago

Update: Skin is booting: http://gbl-deploy-stage.herokuapp.com/lunchroom.goodybag.com/?invite=E4AA8653-9AFD-41E3-A543-9D3B961E87EF

Now on to porting pages and components.

cadorn commented 8 years ago

Update: First page and component (landing page) is ported and working in all browsers including IE9.

Now on to porting menu and checkout pages + components.

cadorn commented 8 years ago

Update: Got a bunch of stuff ported. Hoping to have menu and checkout working again end of day tomorrow (Fri).

cadorn commented 8 years ago

Testing Checklist:

cadorn commented 8 years ago

@jrf0110 Update: I have the navigation, menu and checkout working again. Here is the plan for this week:

I will then be available to support anyone working on the app starting the following week.

After this week I'll continue to submit patches to refine the component and data APIs among other things until everything is straightforward and working solid. I also expect to have continuous UI testing locally and via the heroku staging pipelines working in December.

cadorn commented 8 years ago

@jrf0110 The app branch is ready for an install test: https://github.com/goodybag/lunchroom.goodybag.com/tree/app

Update: Not sure if it will be ready to launch new public app on Thu (will publish admin update with timezone fix). I want to keep testing/polishing app this week to ensure it is solid and then launch new version mid next week and handover (I prefer not to launch for Monday as that is usually the busiest ordering day).

cadorn commented 8 years ago

Update: Added email spam guard and re-worked email logic a bit. Porting functionality took longer than expected but is all there now. Will be tweaking a bunch of stuff tomorrow and then focusing on solid app user experience / polish.

cadorn commented 8 years ago

@jrf0110 I have everything ported and will be putting it on the staging server tomorrow (Monday) for further testing. I'll be moving the email cron job from the old app to the new one on staging so we should enable the dyno to always be on for now. The UI still flashes when the components re-render. I'll be optimizing that on Monday/Tuesday. Once the app is live we can go over everything so you guys can continue dev. I will be cleaning up all issues and provide a summary of the status of everything this week.

cadorn commented 8 years ago

Update: Had no power for most of the day; Launching admin update and disabling old admins tomorrow if all works. Also moving cron to admin new app and disabling cron in old app. Will then finish fast component rendering and testing and put new app on staging for further testing.

cadorn commented 8 years ago

Update: Got stuck re-writing an algorithm/lib at the heart of the config system. I expect to finish it tomorrow and then continue with above.

cadorn commented 8 years ago

Summarized outstanding items at: https://github.com/goodybag/lunchroom.goodybag.com/issues/4