{"id":15209164,"url":"https://github.com/dragosshd/blogjet","last_synced_at":"2026-03-10T13:06:14.768Z","repository":{"id":42506492,"uuid":"454420528","full_name":"DragosSHD/blogjet","owner":"DragosSHD","description":"This app has been developed as a project for the FullStack Javascript course provided by Generatia Tech.","archived":false,"fork":false,"pushed_at":"2022-04-02T09:42:16.000Z","size":647,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-17T04:46:04.229Z","etag":null,"topics":["crud-application","ejs-templating","express-js","node-js","server-side-rendering"],"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/DragosSHD.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}},"created_at":"2022-02-01T14:32:29.000Z","updated_at":"2022-03-20T15:34:31.000Z","dependencies_parsed_at":"2022-09-16T00:01:07.036Z","dependency_job_id":null,"html_url":"https://github.com/DragosSHD/blogjet","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/DragosSHD%2Fblogjet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DragosSHD%2Fblogjet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DragosSHD%2Fblogjet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DragosSHD%2Fblogjet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DragosSHD","download_url":"https://codeload.github.com/DragosSHD/blogjet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242277153,"owners_count":20101530,"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":["crud-application","ejs-templating","express-js","node-js","server-side-rendering"],"created_at":"2024-09-28T07:21:44.825Z","updated_at":"2026-03-10T13:06:14.731Z","avatar_url":"https://github.com/DragosSHD.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n  \u003ch3 align=\"center\"\u003eBlogjet\u003c/h3\u003e\n\u003cbr /\u003e\n\n\n## About\n\nBlogjet is an easy tool to build your own blog. Create posts, categories and manage users easily from a simplified UI. This app has been developed as a project for the \nFullStack Javascript course provided by [Generatia Tech](https://generatiatech.ro/cursuri/fullstack-javascript/).\n\n## Technical details\n\nBlogjet is built using Node.js for server runtime and Express as the web framework. CRUD operations on data models are implemented through API endpoints to provide future compatibility\nwith a potential UI library like React. SEO features are aided by the possibility of specifying keywords for each post, which will be included as metadata.\n\nPages of this application have a minimal loading time as server side rendering was used with [Embedded JavaScript templating](https://ejs.co). \n\nBootstrap and flex were used in order to provide easy to use and fast page styling.\n\nData is stored using a document oriented database (MongoDB) for simplicity and because of the\nreduced number of required collections. Object modeling is implemented using mongoose. In order to handle sensitive data like user passwords, the [bcrypt](https://www.npmjs.com/package/bcrypt) library was used.\nFor preventing eronated data from reaching the database, [validator.js](https://www.npmjs.com/package/validator) was used on fields like the email address of a user. \n\n\n## Features to come\n\n- authentication system in order to separate user space from admin space and manage permissions on post and category operations;\n\n## Screenshots\n\n![homepage](https://github.com/DragosSHD/blogjet/blob/master/demo_img/blogjet1.png)\n![post page](https://github.com/DragosSHD/blogjet/blob/master/demo_img/blogjet2.png)\n![edit a post page](https://github.com/DragosSHD/blogjet/blob/master/demo_img/blogjet3.png)\n![category page](https://github.com/DragosSHD/blogjet/blob/master/demo_img/blogjet4.png)\n\n### Built With\n\n* [Node.js](https://nodejs.org/en/)\n* [Express.js](https://expressjs.com)\n* [Ejs](https://ejs.co)\n* [MongoDB](https://www.mongodb.com)\n* [Mongoose](https://mongoosejs.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdragosshd%2Fblogjet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdragosshd%2Fblogjet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdragosshd%2Fblogjet/lists"}