{"id":15209203,"url":"https://github.com/theflyingdutch789/contact-app","last_synced_at":"2026-02-09T11:02:18.332Z","repository":{"id":230513306,"uuid":"465986849","full_name":"theflyingdutch789/Contact-APP","owner":"theflyingdutch789","description":"Full Stack Contact App created using Express, Mongoose, and EJS ","archived":false,"fork":false,"pushed_at":"2022-03-04T06:11:46.000Z","size":5191,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-09T12:55:25.287Z","etag":null,"topics":["ejs-templating","expressjs","mongodb","mongoose"],"latest_commit_sha":null,"homepage":"https://contact897-app.herokuapp.com/","language":"EJS","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/theflyingdutch789.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}},"created_at":"2022-03-04T04:53:40.000Z","updated_at":"2022-03-04T05:53:19.000Z","dependencies_parsed_at":"2024-03-30T06:51:27.542Z","dependency_job_id":null,"html_url":"https://github.com/theflyingdutch789/Contact-APP","commit_stats":null,"previous_names":["theflyingdutch789/contact-app"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theflyingdutch789%2FContact-APP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theflyingdutch789%2FContact-APP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theflyingdutch789%2FContact-APP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theflyingdutch789%2FContact-APP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theflyingdutch789","download_url":"https://codeload.github.com/theflyingdutch789/Contact-APP/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242692349,"owners_count":20170228,"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":["ejs-templating","expressjs","mongodb","mongoose"],"created_at":"2024-09-28T07:22:03.902Z","updated_at":"2026-02-09T11:02:18.127Z","avatar_url":"https://github.com/theflyingdutch789.png","language":"EJS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Contact App\n\nApp created as per requirements for the interview in Zoho.  \nFull stack contact App created Using Node JS, Express JS, Mongo DB, Mongoose JS and EJS.  \nUser authentication and Session Cookie implemented using Javascript Library Passport JS.\nPassport Js uses pbkdf2 (sha256) for hashing the password and storing it in database.\nSession cookies are maintained such that even if user changes tabs or goes anywhere after login, the user will stay authenticated and doesn't need to re-login. Session Cookies are valid till the browser closes.\n\nWarning :- App won't login if a user account doesn't exist in the database. By default the app will route to \"/\" which is login page. Since Error messages are not implemented in this version, if a user doesnt exist in database, the app will keep re-routing after failed authentication to the login page. Create a account using Sign up button before proceeding to login.  \n\n### Deployed App in Heroku Server\nhttps://contact897-app.herokuapp.com/\n\n### Usage\n\nClone the project in cli using \n```bash\ngit clone https://github.com/theflyingdutch789/Contact-APP.git\n```\nInstall dependencies\n\n```bash\nnpm install  \n```\n\n### Run Server\n\n```bash\nnode index.js\n```\nThen open localhost:3000 in the brower to render the web-app.\n\n\n### Test-cases\n\n* If the username already exist in database, then it is not allowed to be created again.\n* If the contact number already exist in database for the same user, then the contact is not allowed to be created again.\n\n### Mongo-DB connection String\n```\nconst mongoDB = \"mongodb://localhost/contactDB\";\nmongoose.connect(mongoDB, { useNewUrlParser: true });\n```\n\n### User Schema\n```\nmongoose.Schema({\n    email: String,\n    password: String,\n    secret: String, \n    //Schema for array of objects to store the contacts\n    contacts: [{\n        name: String,\n        number: String,\n        email: String\n    }]\n});\n```\n\n### Improvements\n\nFront End can be changed to React for better styling and Efficiency.\nSome error message needs to be displayed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheflyingdutch789%2Fcontact-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheflyingdutch789%2Fcontact-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheflyingdutch789%2Fcontact-app/lists"}