{"id":14973408,"url":"https://github.com/emmanuelnwankwo/mean-angularjs","last_synced_at":"2026-03-04T04:32:24.751Z","repository":{"id":127297013,"uuid":"110967087","full_name":"emmanuelnwankwo/mean-angularjs","owner":"emmanuelnwankwo","description":"Single Page Application","archived":false,"fork":false,"pushed_at":"2023-01-31T22:17:43.000Z","size":2235,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-25T14:51:55.771Z","etag":null,"topics":["angular1","angularjs","api","express","jwt","mean-stack","node","single-page-app"],"latest_commit_sha":null,"homepage":"","language":"HTML","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/emmanuelnwankwo.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-11-16T12:09:28.000Z","updated_at":"2019-06-11T11:25:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"e8495404-824d-416b-86fc-af04510e0dbe","html_url":"https://github.com/emmanuelnwankwo/mean-angularjs","commit_stats":{"total_commits":6,"total_committers":3,"mean_commits":2.0,"dds":"0.33333333333333337","last_synced_commit":"7059e5c1b7e2c49e2b78523f35c344689fda6101"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/emmanuelnwankwo/mean-angularjs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emmanuelnwankwo%2Fmean-angularjs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emmanuelnwankwo%2Fmean-angularjs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emmanuelnwankwo%2Fmean-angularjs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emmanuelnwankwo%2Fmean-angularjs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emmanuelnwankwo","download_url":"https://codeload.github.com/emmanuelnwankwo/mean-angularjs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emmanuelnwankwo%2Fmean-angularjs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30071687,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T03:25:38.285Z","status":"ssl_error","status_checked_at":"2026-03-04T03:25:05.086Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["angular1","angularjs","api","express","jwt","mean-stack","node","single-page-app"],"created_at":"2024-09-24T13:48:40.577Z","updated_at":"2026-03-04T04:32:24.725Z","avatar_url":"https://github.com/emmanuelnwankwo.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MEAN-angularjs\n## Single Page Application\n\nThis is my first SPA test-project using MEAN-STACK components (angularjs-1.6.6 precisely). The backend consist of \n  `API` with `jsonwebtoken`\n```\nvar bodyParser = require('body-parser'); \nvar User       = require('../models/user');\nvar Student    = require('../models/student');\nvar jwt        = require('jsonwebtoken');\nvar config     = require('../../config');\n\n// Secret for creating tokens\nvar hiddenSecret = config.secret;\n\ncontinue on app/routes/api.js\n```\n**User Schema**\n```\nvar mongoose     = require('mongoose');\nvar Schema       = mongoose.Schema;\nvar bcrypt \t\t = require('bcrypt-nodejs');\n\n// user schema\nvar UserSchema   = new Schema({\n\tfirstname: String,\n\tlastname: String,\n\tusername: { type: String, required: true, index: { unique: true }},\n\tpassword: { type: String, required: true, select: false },\n\taddress: String,\n\tcity: String,\n\tstate: String,\n\tdob: String,\n\tgender: String,\n\tmobile: String,\n\ttclass: String\n\t\n});\n\n// hash the password before the user is saved\nUserSchema.pre('save', function(next) {\n\tvar user = this;\n\n\t// hash the password only if the password has been changed or user is new\n\tif (!user.isModified('password')) return next();\n\n\t// generate the hash\n\tbcrypt.hash(user.password, null, null, function(err, hash) {\n\t\tif (err) return next(err);\n\n\t\t// change the password to the hashed version\n\t\tuser.password = hash;\n\t\tnext();\n\t});\n});\n\n// method to compare a given password with the database hash\nUserSchema.methods.comparePassword = function(password) {\n\tvar user = this;\n\n\treturn bcrypt.compareSync(password, user.password);\n};\n\n\nmodule.exports = mongoose.model('User', UserSchema);\n```\n**Student Schema**\n```\n  var mongoose     = require('mongoose');\n  var Schema       = mongoose.Schema;\n  \n  \n  // Student schema\n  var StudentSchema = new Schema ({\n    \n      firstname: String,\n      lastname: String,\n      gender: String,\n      dob: String,\n      level: String,\n      mobile: Number,\n      city: String,\n      parentsname: String,\n      parentsnumber: Number,\n      state: String,\n      address: String\n    \n    \n  });\n  \n  module.exports = mongoose.model('Student', StudentSchema);\n```\n\n## Installation\n1. Download the repository\n2. Install npm modules: `npm install`\n3. Start up the server: `node server.js`\n4. View in browser at http://localhost:3000\n\nWith lots of work on both the backend and frontend view, I will call it a shot here to move on with latest [angular](http://angular.io/) (v5.x as of the time this was written). \n\n**Note:** The frontend design view was not awesomely designed as it was not the focus of this project, however I used some bootstrap and fontawesome to tweaks some views.\n\n### Known issues include,\n \n- Unable to delete user(staff) profile from the frontend though it works perfectly from the backend\n- You may experience browser freezing while trying to get a user profile details when logged-in\n\n*This project is still open for review and corrections*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femmanuelnwankwo%2Fmean-angularjs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femmanuelnwankwo%2Fmean-angularjs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femmanuelnwankwo%2Fmean-angularjs/lists"}