{"id":29516195,"url":"https://github.com/anthonyray/restaurantapp","last_synced_at":"2025-07-16T14:42:03.701Z","repository":{"id":16990052,"uuid":"19753053","full_name":"anthonyray/restaurantapp","owner":"anthonyray","description":"A restaurant application made with BackboneJS","archived":false,"fork":false,"pushed_at":"2014-05-22T22:57:03.000Z","size":336,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-04-15T09:15:24.508Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anthonyray.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-05-13T19:37:25.000Z","updated_at":"2024-04-15T09:15:24.509Z","dependencies_parsed_at":"2022-09-24T12:01:14.996Z","dependency_job_id":null,"html_url":"https://github.com/anthonyray/restaurantapp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/anthonyray/restaurantapp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anthonyray%2Frestaurantapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anthonyray%2Frestaurantapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anthonyray%2Frestaurantapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anthonyray%2Frestaurantapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anthonyray","download_url":"https://codeload.github.com/anthonyray/restaurantapp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anthonyray%2Frestaurantapp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265518945,"owners_count":23781050,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-16T14:41:56.805Z","updated_at":"2025-07-16T14:42:03.692Z","avatar_url":"https://github.com/anthonyray.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Restaurant App\n\n## Description\nRestaurant App is a single page website built with Backbone.JS.\nI was asked to do this project with one constraint : \"Make a website hosted on a server that serves static content, but make the website dynamic and interesting\".\n\nI wanted to bring dynamism to the website by making a single page website, with page transitions. I built the website respecting the initial constraint but writing code so that adding a regular server with a database could be done only adding two to three lines of code on the client side.\n\n## Quick start\nYou can find a hosted version of the project [here](http://anthonyray.github.io/latabledeparis/).\n\nIf you want to make a local copy just run `git clone https://github.com/anthonyray/restaurantapp.git`\n\n+ If you have Grunt, you can run : `grunt serve` inside the `restaurantapp`directory\n+ Else, you can run a static server in the `restaurantapp/dist` folder (you can run `python -m SimpleHTTPServer` for instance)\n\n## Further documentation\n### Frameworks and libraries used\nWe might argue over the utility of Backbone.JS here but I think that it brought solid structure to my code base. I tried to keep the use of library minimal.\n\n+ [Backbone.JS](http://backbonejs.org/)\n+ [JQuery](http://jquery.com/)\n+ [Underscore.js](http://underscorejs.org/) (Backbone dependency)\n+ [Handlebars](https://github.com/wycats/handlebars.js/) : used for the templating system\n+ [Bootstrap-datepicker](https://github.com/eternicode/bootstrap-datepicker) : used for the calendar\n\n### Tools used\nI used yeoman with the official backbone generator to scaffold the website.\nI use the following CLI tools :\n+ `yeoman`\n+ `bower`\n+ `grunt`\n\n### Structure of the code (and how to read it)\nBackbone.JS brought a MV\\* structuration to the application. Here is the list of the views (which are like Controllers), Models, Collection, and Router :\n\n+ **Views**\n  + `landing.js` : **LandingView**. View that displays the landing page\n  + `menu.js` : **MenuView**. View that displays the menu of the restaurant\n    + `dish-thumb.js` : subview that displays thumbnail for a dish on the menu page.\n  + `dish.js` : **DishView**. View that displays more information on a particular dish.\n  + `information.js` : **InformationView**. View that displays (fake) information about the restaurant.\n  + `booking.js` : **BookingView**. View that displays a form to make a reservation\n    + `booking_datepicker.js` : **BookingConfirmView**. Subview that display a calendar to pick a date for a reservation\n    + `booking_map.js` : **BookingMapView**. Subview that displays a map of the restaurant and allows the client to choose his table.\n    + `booking_confirm.js` : **BookingConfirmView**. Subview that displays a summary of the client's reservation.\n\n+ **Models**\n  + `booking.js` : **BookingModel** . Representation of a client reservation.\n  + `dish.js` : **DishModel**. Representation of a dish.\n+ **Collection**\n   + `dishes.js` : **DishesCollection**. Collection of dishes (This is where I hardcoded the data, which is supposed to be retrieve from the backend server)\n+ **Router**\n  + `app.js` : **AppRouter**. Router that initializes views, and handles the transition between them.\n+ **Templates**  : Every views has its own handlebars templates. I also added some templates helpers.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanthonyray%2Frestaurantapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanthonyray%2Frestaurantapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanthonyray%2Frestaurantapp/lists"}