{"id":20664209,"url":"https://github.com/victoriamcn/tech-blog","last_synced_at":"2026-04-14T04:31:19.943Z","repository":{"id":155557449,"uuid":"632088779","full_name":"victoriamcn/Tech-Blog","owner":"victoriamcn","description":"A CMS-style blog site similar to a Wordpress site, where developers can publish their blog posts and comment on other developers’ posts as well. ","archived":false,"fork":false,"pushed_at":"2023-06-04T02:50:04.000Z","size":123,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-25T16:18:28.841Z","etag":null,"topics":["express","expressjs","heroku","javascript","mysql","nodejs","spectre-css"],"latest_commit_sha":null,"homepage":"https://git.heroku.com/sheltered-oasis-68094.git","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/victoriamcn.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":"2023-04-24T17:26:48.000Z","updated_at":"2023-06-19T18:52:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"b9e98160-be3f-4136-a4d0-d4db861b2e5b","html_url":"https://github.com/victoriamcn/Tech-Blog","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/victoriamcn/Tech-Blog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victoriamcn%2FTech-Blog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victoriamcn%2FTech-Blog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victoriamcn%2FTech-Blog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victoriamcn%2FTech-Blog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/victoriamcn","download_url":"https://codeload.github.com/victoriamcn/Tech-Blog/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victoriamcn%2FTech-Blog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31782736,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T02:24:21.117Z","status":"ssl_error","status_checked_at":"2026-04-14T02:24:20.627Z","response_time":153,"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":["express","expressjs","heroku","javascript","mysql","nodejs","spectre-css"],"created_at":"2024-11-16T19:22:57.980Z","updated_at":"2026-04-14T04:31:19.927Z","avatar_url":"https://github.com/victoriamcn.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tech-Blog\nA CMS-style blog site similar to a Wordpress site, where developers can publish their blog posts and comment on other developers’ posts as well. \n\n## Table of Contents\n- [Deployed Application](#deployed-applicaiton)\n- [User Story](#user-story)\n- [Installation and Usage](#installation-and-usage)\n- [MVC Paradigm](#mvc-Paradigm)\n- [Other npm Packages](#other-npm-packages)\n- [Contributing](#contributing)\n- [Questions](#questions)\n- [License](#license)\n- [Credits](#credits)\n- [Badges](#badges)\n\n## Deployed Application\n[https://git.heroku.com/sheltered-oasis-68094.git](https://git.heroku.com/sheltered-oasis-68094.git)\n\n## User Story\n```\nAS A developer who writes about tech\nI WANT a CMS-style blog site\nSO THAT I can publish articles, blog posts, and my thoughts and opinions\n```\n\n## Installation and Usage\n1. Clone this repository to your local computer.\n2. Open the repo in ```VS Code```.\n3. Open the server.js file in the Integrated Terminal.\n4. Log-in to ```MySQL```.\n5. **Create your own .env file:**\n- Add new file called ```.env```\n- Use following syntax in your ```.env``` file with your ```MySQL``` username and password instead of ```example```:\n```\nDB_NAME='techblog_db'\nDB_PASSWORD='example'\nDB_USER='example'\n```\n6. **Install all dependencies:** type the following in the command line: ```npm i```.\n7. **Create the SQL database locally** [Refer to this documentation to get started:](https://dev.mysql.com/doc/mysql-getting-started/en/). This covers installation for both Windows and MacOS.\n8. ***Optional*** **Seed the database:** type the following in the command line: ```npm run seed```.\n9. **Start the server:** type the following in the command line: ```npm start```.\n\n## MVC Paradigm\n- Model: [mysql2](https://www.npmjs.com/package/mysql2) packages to connect to a MySQL database.\n- Model: [sequelize](https://www.npmjs.com/package/sequelize) packages to connect to a MySQL database.\n- View: [express-handlebars](https://www.npmjs.com/package/express-handlebars).\n- Controller: Created an [Express.js](https://expressjs.com/en/starter/installing.html) API.\n\n## Other npm Packages\n- [dotenv](https://www.npmjs.com/package/dotenv) package to use environment variables\n- [bcrypt](https://www.npmjs.com/package/bcrypt) package to hash passwords\n- [connect-session](https://www.npmjs.com/package/express-session) package to add authentication\n- [connect-session-sequelize](https://www.npmjs.com/package/connect-session-sequelize) package to add authentication\n\n## Contributing\nTo contribute to this project, you may create a git fork.\n\n## Questions\n![GitHub](https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge\u0026logo=github\u0026logoColor=white) To view my other projects, you may visit my Git Hub profile: [victoriamcn](https://github.com/victoriamcn).\n\n![LinkedIn](https://img.shields.io/badge/linkedin-%230077B5.svg?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white) To contact me or see my resume, please visit my LinkedIn profile: [Victoria McNorrill](https://www.linkedin.com/in/victoria-mcnorrill/)\n\n## License\n[MIT](https://img.shields.io/badge/License-MIT-blue.svg)\nThis project is licensed under MIT.\n- [Click](https://pitt.libguides.com/openlicensing/MIT#:~:text=Users%20of%20software%20using%20an,and%20the%20X%20Windows%20System.) here to view the license documentation or,\n- Go to the [license file](https://github.com/victoriamcn/Tech-Blog/blob/main/LICENSE) with in this repository.\n\n## Credits\n\n### Georgia Tech Staff\n- My instructor, [Saurav Khatiwada](https://github.com/khatiwadasaurav).\n- My tutor, Juan Delgado.\n\n### Example Code\n\n- I based my code on the Module 14: Model-View-Controller (MVC) Mini-Project in the Georgia Tech Boot Camp.\n\n### Tutorials\n- StackOverflow: [TypeError: app.use() requires middleware functions](https://stackoverflow.com/questions/32883626/typeerror-app-use-requires-middleware-functions)\n- The Full-Stack Blog: [Deploy with Heroku and MySQL](https://coding-boot-camp.github.io/full-stack/heroku/deploy-with-heroku-and-mysql)\n- The Vanilla JS Toolkit: [Element.addEventListener()](https://vanillajstoolkit.com/reference/event-listeners/addeventlistener/)\n- YouTube: [Deploying to Heroku with Sequelize and JawsDB](https://www.youtube.com/watch?v=AQp7b-1356k)\n\n## Badges\n\n### Cloud\n![Heroku](https://img.shields.io/badge/heroku-%23430098.svg?style=for-the-badge\u0026logo=heroku\u0026logoColor=white)\n\n### Database\n![MySQL](https://img.shields.io/badge/mysql-%2300f.svg?style=for-the-badge\u0026logo=mysql\u0026logoColor=white)\n\n### Frameworks and Libraries\n![Express.js](https://img.shields.io/badge/express.js-%23404d59.svg?style=for-the-badge\u0026logo=express\u0026logoColor=%2361DAFB)\n![Handlebars.js](https://img.shields.io/badge/Handlebars.js-f0772b?style=for-the-badge\u0026logo=handlebarsdotjs\u0026logoColor=black)\n![Spectre.css](https://img.shields.io/badge/CSS-Spectre.css-purple)\n![NodeJS](https://img.shields.io/badge/node.js-6DA55F?style=for-the-badge\u0026logo=node.js\u0026logoColor=white)\n![NPM](https://img.shields.io/badge/NPM-%23CB3837.svg?style=for-the-badge\u0026logo=npm\u0026logoColor=white)\n\n### Integrated Development Environments (IDE)\n![Insomnia](https://img.shields.io/badge/Insomnia-black?style=for-the-badge\u0026logo=insomnia\u0026logoColor=5849BE)\n![Visual Studio Code](https://img.shields.io/badge/Visual%20Studio%20Code-0078d7.svg?style=for-the-badge\u0026logo=visual-studio-code\u0026logoColor=white)\n\n### Languages\n![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge\u0026logo=css3\u0026logoColor=white)\n![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge\u0026logo=javascript\u0026logoColor=%23F7DF1E)\n\n### Linters\n![Prettier](https://img.shields.io/badge/prettier-1A2C34?style=for-the-badge\u0026logo=prettier\u0026logoColor=F7BA3E)\n![eslint](https://img.shields.io/badge/eslint-3A33D1?style=for-the-badge\u0026logo=eslint\u0026logoColor=white)\n\n### ORM\n![Sequelize](https://img.shields.io/badge/Sequelize-52B0E7?style=for-the-badge\u0026logo=Sequelize\u0026logoColor=white)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvictoriamcn%2Ftech-blog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvictoriamcn%2Ftech-blog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvictoriamcn%2Ftech-blog/lists"}