{"id":14973359,"url":"https://github.com/crizstian/book-store","last_synced_at":"2025-10-26T23:30:42.329Z","repository":{"id":150147219,"uuid":"83611523","full_name":"crizstian/book-store","owner":"crizstian","description":"Example of a book store management with MEAN STACK","archived":false,"fork":false,"pushed_at":"2024-11-08T17:13:48.000Z","size":599,"stargazers_count":21,"open_issues_count":2,"forks_count":11,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-01T01:11:18.518Z","etag":null,"topics":["angular-2","angular-cli","api","docker","expressjs","http2","mongodb","nodejs","tdd","web-app","webpack2"],"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/crizstian.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-03-01T23:17:58.000Z","updated_at":"2024-11-08T17:13:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"31b36bd4-0a78-4e95-aa90-36c88aadcd07","html_url":"https://github.com/crizstian/book-store","commit_stats":{"total_commits":35,"total_committers":2,"mean_commits":17.5,"dds":0.02857142857142858,"last_synced_commit":"54d17c76de98707c0ac627583985be9777a3ea5f"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crizstian%2Fbook-store","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crizstian%2Fbook-store/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crizstian%2Fbook-store/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crizstian%2Fbook-store/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crizstian","download_url":"https://codeload.github.com/crizstian/book-store/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238408662,"owners_count":19467153,"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":["angular-2","angular-cli","api","docker","expressjs","http2","mongodb","nodejs","tdd","web-app","webpack2"],"created_at":"2024-09-24T13:48:36.523Z","updated_at":"2025-10-26T23:30:37.023Z","avatar_url":"https://github.com/crizstian.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Book Store Management MEAN Stack example\n\n\u003e - A book store management with CRUD operations calls to an API Service\n\n\u003e - MongoDB database interactions\n\n\u003e - http/2 server enabled\n\n\u003e - User authentication enabled\n\n\u003e - Responsive web design\n\n#### Preview\n\n![](./Snapshots.png)\n\n\n### Stack\n- NodeJS 7.7.0 (installed - required)\n- MongoDB 3.4.2\n- Angular 2.4 with CLI\n- Docker 1.13.1 (installed - required)\n\n## Installation\nOS X \u0026 Linux:\n```sh\n$ bash \u003c kraken.sh\n```\nWindows:\n```sh\nchange linux commands from the kraken.sh file to be able to automate the process\n```\n\n---\n## Usage of the system with docker\n\n#### !IMPORTANT\n\nbefore starting to deploy our services either in production mode or development mode, we must check and verify the api url, from the angular *api.service.ts* to be the same ip that the *docker-machine-ip*\n\n#### Get the docker-machine ip\nFirst of all we need to know what is the ip of our docker-machine to get the ip we need to execute the following command:\n\n`$ docker-machine ip dimtec`\n\n---\n### Description of usage\n**Web App**:\n\nTo use the web app we need to visit the following url:\n`https://{{docker-machine-ip}}:8080` in a chrome browser for better experience, the browser will ask us if we want to trust the certificate and we need trust it, this happens because we are using self-signed certificates.\n\nIn the section where an image is uploaded it uses a fake cdn server to simulate how the image is going to be uploaded and when its uploaded, returns the fake image url, and we update our book object to store the book information on the database.\n\n**Book Service API**\n\nThe web app will make use of the API calling the following url: `https://{{docker-machine-ip}}:3000` and here the will the dispatch all the requests need it for, searching, creating, editing, deleting a book, as well as the author.\n\n**MongoDB Database**\n\nTo make use of the database the book service api calls the following ip server: `{{docker-machine-ip}}:27017` but to be able to perform the database operations we need to be authenticated.\n\n---\n## Usage of the system without docker\n## Development setup\n\n**Angular app**\n\nTo run the angular app we need to position it in the client folder and run the following command:\n\n```\n$ npm start\n```\n\nThis will run the `angular-cli` command `ng serve` that will deploy the angular app in a webpack integrated server for testing at the url `http://localhost:4200`.\n\n**Server API**\n\nTo start the server api, we need to be position it at the server folder and run the command:\n\n```\n$ npm start\n```\n\nthis will start the api service at the following url: `http://localhost:3000`\n\n**Database**\n\nThe database will be configured automatically with the script located at the database folder and will be listening at the following url: `{{docker-machine-ip}}:27017`\n\n---\n#### Preview\n![](./Snapshots2.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrizstian%2Fbook-store","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrizstian%2Fbook-store","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrizstian%2Fbook-store/lists"}