{"id":15091694,"url":"https://github.com/blindsweatyhansolo/tech-blog","last_synced_at":"2026-02-10T02:35:05.387Z","repository":{"id":111724109,"uuid":"494114091","full_name":"blindsweatyhansolo/tech-blog","owner":"blindsweatyhansolo","description":"Technically Speaking: A Tech Blog","archived":false,"fork":false,"pushed_at":"2022-05-25T21:09:49.000Z","size":7122,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-20T04:46:26.769Z","etag":null,"topics":["bcrypt","dotenv","express-session","expressjs","handlebarsjs","mysql2","nodejs","sequelize"],"latest_commit_sha":null,"homepage":"https://bshs-tech-blog.herokuapp.com/","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/blindsweatyhansolo.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":"2022-05-19T14:49:47.000Z","updated_at":"2022-08-23T18:41:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"d80fe906-68bc-4186-ab28-fbd3d623f563","html_url":"https://github.com/blindsweatyhansolo/tech-blog","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/blindsweatyhansolo/tech-blog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blindsweatyhansolo%2Ftech-blog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blindsweatyhansolo%2Ftech-blog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blindsweatyhansolo%2Ftech-blog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blindsweatyhansolo%2Ftech-blog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blindsweatyhansolo","download_url":"https://codeload.github.com/blindsweatyhansolo/tech-blog/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blindsweatyhansolo%2Ftech-blog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29289565,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T02:32:08.756Z","status":"ssl_error","status_checked_at":"2026-02-10T02:30:31.937Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["bcrypt","dotenv","express-session","expressjs","handlebarsjs","mysql2","nodejs","sequelize"],"created_at":"2024-09-25T10:42:47.236Z","updated_at":"2026-02-10T02:35:05.350Z","avatar_url":"https://github.com/blindsweatyhansolo.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Technically Speaking: A Tech Blog\n\n## Table of Contents\n\n* [Description](#description)\n* [Installation](#installation)\n* [Usage](#usage)\n* [Tests](#tests)\n* [Contributions](#contributions)\n* [Additional Information](#additional-information)\n\n\n## [Description:](#table-of-contents)\n**Technically Speaking** is a CMS-style blog site where a user can publish articles, blog posts, and general thoughts and opinions. All visitors can access the homepage featuring all posts from signed up users. Signing up on the site allows the user to access further features such as post creation, editing, and commenting.\n\n## [Installation:](#table-of-contents)\nTo work with the code base, follow these instructions:\n\n1. Clone this repository onto your machine with `git clone`\n2. To install the required dependencies, from the root directory run command `npm install`\n3. Tech Blog uses the [dotenv](https://www.npmjs.com/package/dotenv) package to use environment variables. Once cloned and dependencies installed, make a copy of the `.env.EXAMPLE` file, rename it `.env`, and fill in the required fields with your MySQL username and password. The `.env` file has been included in the `.gitignore` file for security purposes.\n4. In the command line, use `npm start` to kickstart the server and SQL connection.\n\n*Developer Note: Please make sure you have MySQL installed on your machine. For information on how to install MySQL, please click [here](https://coding-boot-camp.github.io/full-stack/mysql/mysql-installation-guide)*\n\n## [Usage:](#table-of-contents)\n**Technically Speaking** is fully deployed [here on Heroku](https://bshs-tech-blog.herokuapp.com/). You must sign-up in order to create and/or edit posts, or to comment on existing posts. Non-logged in users may still access the homepage that will display all posts, but will be redirected to login/signup if trying to access the Dashboard. \n\n![Live demo for Technically Speaking](./assets/demoTECHBLOG.gif)\n\n## [Tests:](#table-of-contents)\nTesting can be replicated using Jest, and API endpoint testing can be replicated using any REST Clients such as Insomnia or PostMan\n\n## [Contributions:](#table-of-contents)\nContributions and feedback always welcome!\n\n## [Additional Information:](#table-of-contents)\n**Technically Speaking** was created as a bootcamp project focusing on MVC architectural best practices, using template engines such as Handlebars.js, session authentication, and ORM utilization. It is fully deployed on Heroku, and available for educational purposes.\n\nTechnologies Used:\n\n* Node.js\n* [Express.js](https://www.npmjs.com/package/express)\n* [Sequelize](https://www.npmjs.com/package/sequelize)\n* [Express Handlebars.js](https://www.npmjs.com/package/express-handlebars)\n* [bcrypt](https://www.npmjs.com/package/bcrypt)\n* [express-session](https://www.npmjs.com/package/express-session)\n* [connect-session-sequelize](https://www.npmjs.com/package/connect-session-sequelize)\n* [mysql2](https://www.npmjs.com/package/mysql2)\n* [dotenv](https://www.npmjs.com/package/dotenv)\n* [nodemon](https://www.npmjs.com/package/nodemon)\n\n\nDeployed URL (Heroku):\n[Technically Speaking: A Tech Blog](https://bshs-tech-blog.herokuapp.com/)\n\n\n_If you have any questions about the application, or would like to become a contributor, please contact me using the information below:_\n\n[GitHub](https://github.com/blindsweatyhansolo)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblindsweatyhansolo%2Ftech-blog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblindsweatyhansolo%2Ftech-blog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblindsweatyhansolo%2Ftech-blog/lists"}