{"id":17674653,"url":"https://github.com/montsamu/fullstack","last_synced_at":"2025-03-30T16:43:29.383Z","repository":{"id":136415327,"uuid":"89267420","full_name":"montsamu/fullstack","owner":"montsamu","description":"Simple Mongoose-Express-Angular-Node \"contact book\" application, with Karma/Jasmine unit tests.","archived":false,"fork":false,"pushed_at":"2017-05-03T18:03:27.000Z","size":15,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-05T18:31:56.151Z","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/montsamu.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-04-24T17:18:43.000Z","updated_at":"2017-04-25T12:43:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"48fb6068-ab16-4c38-9479-d7a5efe00bbe","html_url":"https://github.com/montsamu/fullstack","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/montsamu%2Ffullstack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/montsamu%2Ffullstack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/montsamu%2Ffullstack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/montsamu%2Ffullstack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/montsamu","download_url":"https://codeload.github.com/montsamu/fullstack/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246350821,"owners_count":20763226,"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":"2024-10-24T07:08:08.161Z","updated_at":"2025-03-30T16:43:29.361Z","avatar_url":"https://github.com/montsamu.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fullstack\nSimple Mongoose-Express-Angular-Node \"contact book\" application, with Karma/Jasmine unit tests.\n\nNOTE: this doesn't use nice things like express-generator, yeoman, grunt, and so on, more \"bare bones\".\n\n# PREREQUISITES:\n\n## 1. Install Mongo and Node\n\n## 2. Setup and start Mongo in one command window:\n```\n    md \\data\\db\n    c:\\path\\to\\mongod.exe\n```\n\n# PACKAGES and CODE (NON-GIT APPROACH):\n\n## 1. In another command window, create project and install node packages:\n```\n    mkdir fullstack (or any project name \u003capp\u003e you choose)\n    cd \u003capp\u003e\n    npm init (all defaults except specify server.js instead of index.js for main server)\n    npm install --save express\n    npm install --save ejs\n    npm install --save angular\n    npm install --save mongoose (mongodb client)\n    npm install --save-dev nodemon\n```\n\n## 2. Develop the application:\n```\n    mkdir \u003capp\u003e/app, create \u003capp\u003e/app/index.html and \u003capp\u003e/app/app.js with the angular page html and code\n    create \u003capp\u003e/models/Contact.js with the Contact model\n    create \u003capp\u003e/routes/contacts.js with the /contacts route code\n    create \u003capp\u003e/server.js with the express app code\n    add \u003capp\u003e/package.json script \"dev\" \"nodemon index.js\"\n```\n\n# PACKAGES and CODE (GIT APPROACH):\n\n## 1. If you started with cloning the Git repository, then:\n```\n    npm install\n```\n\n# RUNNING\n\n## 1. Run the development server:\n```\n    npm run dev\n```\n\n## 2. Open your browser to localhost:3000 and use the application:\n\n### A. Enter a first name into the \"New\" field and click \"Create\"\n\n### B. Click on the first name which now appears in the table\n\n### C. Add a last name, address, and/or company, and click \"Save\"\n\nThe last saved data is now displayed on the right side of the screen.\n\n# UNIT TESTING\n\n## 1. If you did not clone from the Git repository:\n\n### A. install the unit testing libraries:\n```\n    npm install --save-dev karma karma-jasmine jasmine-core karma-chrome-launcher\n    npm install --save-dev angular-mocks angular-resource angular-route\n    karma init (all defaults)\n    npm install -g karma-cli\n```\n\n### B. In karma.conf.js:\n```\n    // list of files / patterns to load in the browser\n    files: [\n    './node_modules/angular/angular.js',\n    './node_modules/angular-resource/angular-resource.js',\n    './node_modules/angular-route/angular-route.js',\n    './node_modules/angular-mocks/angular-mocks.js',\n    './app/app.js',\n    './spec/*Spec.js'\n    ]\n```\n\n### C. In package.json, add script \"test\" -\u003e \"karma start\"\n\n## 2. Run the tests:\n```\n    npm run test\n```\n\nNOTE: There is an \"extension\" of this simple project which adds optional AWS S3 image storage here:\n\nhttps://github.com/montsamu/fullstack-s3\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmontsamu%2Ffullstack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmontsamu%2Ffullstack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmontsamu%2Ffullstack/lists"}