{"id":24915277,"url":"https://github.com/jghaden/mean-template","last_synced_at":"2025-07-10T15:33:51.652Z","repository":{"id":159147455,"uuid":"306800186","full_name":"jghaden/mean-template","owner":"jghaden","description":"MEAN/Bootstrap SPA template with RESTful API","archived":true,"fork":false,"pushed_at":"2022-06-15T17:39:24.000Z","size":1810,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-28T06:29:20.679Z","etag":null,"topics":["mean-stack","restful-api"],"latest_commit_sha":null,"homepage":"","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/jghaden.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":"2020-10-24T03:49:45.000Z","updated_at":"2024-12-12T01:29:47.000Z","dependencies_parsed_at":"2023-07-28T05:16:30.746Z","dependency_job_id":null,"html_url":"https://github.com/jghaden/mean-template","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jghaden/mean-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jghaden%2Fmean-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jghaden%2Fmean-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jghaden%2Fmean-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jghaden%2Fmean-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jghaden","download_url":"https://codeload.github.com/jghaden/mean-template/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jghaden%2Fmean-template/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264599464,"owners_count":23635304,"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":["mean-stack","restful-api"],"created_at":"2025-02-02T07:17:16.155Z","updated_at":"2025-07-10T15:33:51.646Z","avatar_url":"https://github.com/jghaden.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# MEAN/Bootstrap SPA Template\n\nThis is a Single Page Application using MongoDB, ExpressJS, AngularJS, and NodeJS with a RESTful API.\n\n# Overview\n\n1. [Description](#description)\n2. [Requirements](#requirements)\n3. [Installation](#installation)\n4. [Running](#start-server)\n5. [Styling](#styling)\n6. [Testing](#testing)\n\n# Description\n\nThis template was created to act as a boiler plate for quick web application development.\n\nThe template implements user registration, user login, item creation, viewing and deletion. However, users can only proceed after accepting a confirmation email sent with [**Nodemailer**](https://nodemailer.com/about/) configured using Gmail SMTP.\n\nHere is a [**video**](https://www.youtube.com/watch?v=rujXkHMfauI) showcasing the template.\n\n# Requirements\n\nThis application requires installation of [**NodeJS**](https://nodejs.org/) and [**MongoDB**](https://www.mongodb.com/) prior to running.\n\n# Installation\n```\n$ npm install\n```\n\n### Enter your own MongoDB configuration settings in [**server.js**](/server.js)\n\n![](/pics/code-block-1.png)\n\n### If you are using Gmail SMTP, adjust the email client parameters in [/app/routes/**api.js**](/app/routes/api.js)\n\n![](/pics/code-block-2.png)\n\n### Update all email callbacks in the [/app/routes/**api.js**](/app/routes/api.js)\n\n![](/pics/code-block-3.png)\n\n## Start server\n\nIf you wish to have [**nodemon**](https://www.npmjs.com/package/nodemon) watch your code changes, run:\n\n```\n$ npm dev\n```\n\nor if you wish to simplay start the server only with Node (such as a deployed application), run:\n\n```\n$ npm start\n```\n\n# Styling\n\nThis application makes use of [**Bootstrap v4.5**](https://getbootstrap.com/docs/4.5/getting-started/introduction/) for elements such as ```\u003ctable\u003e``` for viewing Users or Items found in the database in a clean fashion as well as ```\u003cnav\u003e``` for the main navigation bar located in [public/app/views/**index.html**](/public/app/views/index.html)\n\n## Sass\n\nSass *(.scss)* files are located in [/public/assets/**sass**](/public/assets/sass).\n\nThere is a **watch-css** NPM script in [**package.json**](package.json) that will actively watch for changes (only on saves) in the Sass folder. When you save a change in a scss file, **node-sass** will process the Sass and save it as [**main.css**](/public/assets/css/main.css) in the css folder located in [public/assets/**css**](/public/assets/css).\n\n[public/assets/css/**main.css**](/public/assets/css/main.css) is loaded after the Bootstrap CDN files in [public/app/views/**index.html**](/public/app/views/index.html)\n\n## **WARNING**\n\nDo not make changes to the [**main.css**](/public/assets/css/main.css) file if you plan to use Sass.\n\nNode-sass will over write anything in [**main.css**](/public/assets/css/main.css) if the **watch-sass** NPM script is running\n\n# Testing\n\nThere is sample data provided in [data/**items.json**](/data/items.json) containing 10 entries that have the following layout:\n\n![](/pics/code-block-4.png)\n\nThis JSON object is directly related to the Mongoose item model in [app/models/**item.js**](/app/models/item.js):\n\n![](/pics/code-block-5.png)\n\n## **REMINDER**\n\nThe [data/**items.json**](/data/items.json) file itself does not provide anything to the application or the Mongo database. You must import the JSON document into your local or remote Mongo database. Make sure to add the [data/**items.json**](/data/items.json) document to **items** collection in the **mean-template** database or whatever you decide to name your database (just make sure to have the same DB name in the [**server.js**](/server.js) file)\n\nTools such as [**MongoDB Compass**](https://www.mongodb.com/products/compass) can make the process of importing, updating, and deleting documents a lot easier.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjghaden%2Fmean-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjghaden%2Fmean-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjghaden%2Fmean-template/lists"}