{"id":15209139,"url":"https://github.com/ppalone/crypt","last_synced_at":"2025-07-05T09:36:42.241Z","repository":{"id":42708034,"uuid":"267336546","full_name":"ppalone/crypt","owner":"ppalone","description":"㊙️ A secret \u0026 secure place where you can only view your blogs 📝. ","archived":false,"fork":false,"pushed_at":"2023-03-05T12:23:35.000Z","size":2563,"stargazers_count":20,"open_issues_count":12,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-09T07:42:55.670Z","etag":null,"topics":["ejs","express","hacktoberfest","mongodb","mongoose","nodejs","passportjs","sendgrid"],"latest_commit_sha":null,"homepage":"https://crypt.ppalone.me/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ppalone.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-05-27T14:09:11.000Z","updated_at":"2023-07-25T14:36:08.000Z","dependencies_parsed_at":"2025-02-14T10:42:11.375Z","dependency_job_id":null,"html_url":"https://github.com/ppalone/crypt","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ppalone/crypt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ppalone%2Fcrypt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ppalone%2Fcrypt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ppalone%2Fcrypt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ppalone%2Fcrypt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ppalone","download_url":"https://codeload.github.com/ppalone/crypt/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ppalone%2Fcrypt/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263720104,"owners_count":23501170,"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","express","hacktoberfest","mongodb","mongoose","nodejs","passportjs","sendgrid"],"created_at":"2024-09-28T07:21:35.617Z","updated_at":"2025-07-05T09:36:42.220Z","avatar_url":"https://github.com/ppalone.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Crypt\n\n㊙ A secret \u0026 secure place where you only can view your blogs 📝\n\n## Features 🍰\n\n- [x] Secure Authentication and Authorization with passport.js and express sessions\n- [x] Email verification\n- [x] Prevention from bots\n- [x] Reset password\n- [x] Change password\n- [x] Filtering blogs\n- [ ] Search blogs\n\n## How to run on your local machine?\n\n- Make sure you have node installed on your machine.\n- Clone the repository and install the dependenies.\n\n  ```\n  npm install\n  ```\n\n- Rename `.env.example` to `.env`\n- Add your environmental variables in `.env` file\n\n  ```\n  MONGO_URI - obtained from Mongodb atlas or put uri of your local mongo server\n  SENDGRID_API_KEY - obtained from sendgrid\n  SENDGRID_FROM - registered email at sendgrid\n  DOMAIN_URL - your localhost port eg. http://localhost:8000\n  GOOGLE_RECAPTCHA_SECRET - obtained from the Google recaptcha v2\n  SESSION_SECRET - a random string (Eg. 'randomsecret')\n  ```\n\n- Run the project\n\n  ```\n  npm run start\n  ```\n\n- Format code\n\n  ```\n  npm run format\n  ```\n\n## Project Structure\n\n```\n├── config\n│   ├── database.js\n│   └── passport.js\n├── controllers\n│   ├── auth\n│   │   └── auth.js\n│   ├── blogs\n│   │   └── blogs.js\n│   ├── forget\n│   │   └── forget.js\n│   ├── profile\n│   │   └── profile.js\n│   ├── reset\n│   │   └── reset.js\n│   └── verify\n│       └── verify.js\n├── index.js\n├── middlewares\n│   ├── auth.js\n│   └── ratelimiter.js\n├── models\n│   ├── Blog.js\n│   ├── Token.js\n│   └── User.js\n├── package.json\n├── package-lock.json\n├── public\n│   ├── css\n│   │   └── style.css\n│   └── js\n│       └── app.js\n├── README.md\n├── routes\n│   ├── auth.js\n│   ├── blogs.js\n│   ├── forget.js\n│   ├── index.js\n│   ├── profile.js\n│   ├── reset.js\n│   └── verify.js\n├── services\n│   └── sendgrid.js\n├── utils\n│   └── date.js\n├── validators\n│   └── validators.js\n└── views\n    ├── auth\n    │   ├── login.ejs\n    │   └── register.ejs\n    ├── blogs\n    │   ├── add.ejs\n    │   ├── blog.ejs\n    │   ├── blogs.ejs\n    │   └── edit.ejs\n    ├── errors\n    │   └── 404.ejs\n    ├── forget\n    │   └── forget.ejs\n    ├── index.ejs\n    ├── partials\n    │   ├── footer.ejs\n    │   ├── header.ejs\n    │   ├── messages.ejs\n    │   └── navbar.ejs\n    ├── profile\n    │   ├── changepassword.ejs\n    │   └── profile.ejs\n    └── reset\n        └── reset.ejs\n```\n\n## Contributors\n\n\u003ca href=\"https://github.com/ppalone/crypt/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=ppalone/crypt\" /\u003e\n\u003c/a\u003e\n\nMade with [contributors-img](https://contrib.rocks).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fppalone%2Fcrypt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fppalone%2Fcrypt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fppalone%2Fcrypt/lists"}