{"id":18544294,"url":"https://github.com/michal-radomski/pern_stack_app","last_synced_at":"2026-02-16T08:31:40.707Z","repository":{"id":123393972,"uuid":"571316030","full_name":"Michal-Radomski/PERN_Stack_App","owner":"Michal-Radomski","description":"PERN Stack App","archived":false,"fork":false,"pushed_at":"2025-11-20T19:18:42.000Z","size":1030,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-20T21:12:38.476Z","etag":null,"topics":["express","jwt-authentication","node","pern-stack","postgresql","react","redux","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/Michal-Radomski.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-11-27T20:43:53.000Z","updated_at":"2025-11-20T19:18:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"509059ce-159d-49da-a47c-13b02838f175","html_url":"https://github.com/Michal-Radomski/PERN_Stack_App","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Michal-Radomski/PERN_Stack_App","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Michal-Radomski%2FPERN_Stack_App","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Michal-Radomski%2FPERN_Stack_App/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Michal-Radomski%2FPERN_Stack_App/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Michal-Radomski%2FPERN_Stack_App/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Michal-Radomski","download_url":"https://codeload.github.com/Michal-Radomski/PERN_Stack_App/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Michal-Radomski%2FPERN_Stack_App/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29503809,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T08:14:25.707Z","status":"ssl_error","status_checked_at":"2026-02-16T08:14:25.334Z","response_time":115,"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","jwt-authentication","node","pern-stack","postgresql","react","redux","typescript"],"created_at":"2024-11-06T20:15:55.179Z","updated_at":"2026-02-16T08:31:40.691Z","avatar_url":"https://github.com/Michal-Radomski.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PERN Stack App\n\nA PERN Stack App (Auth + Todo List).\n\nLink to the application: Coming soon...\n\n## Description\n\n### Motivation\n\nThis is my first [PERN stack](https://www.geeksforgeeks.org/what-is-pern-stack) application.\n\n### General Info\n\nThis is a [Crud App](https://en.wikipedia.org/wiki/Create,_read,_update_and_delete). You can log in, log out, register and\ndelete account (this will remove all todos -\n[ON DELETE CASCADE Constraint](https://www.geeksforgeeks.org/mysql-on-delete-cascade-constraint/)) is used. When you are\nlogged in you can add, update, delete your tasks and read your tasks and those of other users if they are not private.\nAutomatic logout is after 10 minutes of inactivity. There are axios interceptors to refresh the access token.\\\nApp is build thanks to [these tutorials](https://www.youtube.com/@TheStoicProgrammers/videos) and [these one](https://dev.to/olumidesamuel_/implementing-autologout-feature-in-web-applications-react-js-28k5).\n\n## Notes\n\nThe .env file is not hosted on the [GitHub.com](https://github.com).\\\nI have some packages installed globally (e.g. TypeScript, Nodemon) so you have to install them manually.\n\n## Screenshots\n\n\u003cimg alt=\"Add_Todo\" src=\"./screenshots/Add_Todo.png\"\u003e\n\u003cimg alt=\"All_Todos\" src=\"./screenshots/All_Todos.png\"\u003e\n\u003cimg alt=\"Toast\" src=\"./screenshots/Toasts.png\"\u003e\n\u003cimg alt=\"Update_Todo\" src=\"./screenshots/Update_Todo.png\"\u003e\n\u003cimg alt=\"User_dashboard\" src=\"./screenshots/User_dashboard.png\"\u003e\n\n## Built With\n\n- The App is written in [TypeScript](https://www.typescriptlang.org).\n- [React-Bootstrap](https://react-bootstrap.github.io), [Sass](https://sass-lang.com) and\n  [Styled-Components](https://styled-components.com) are used to customize the UI.\n- CRUD operations are performed using [Axios](https://axios-http.com).\n- Client-side routing is done using [React Router](https://reactrouter.com/en/main).\n- Global state of the App is maintained by [Redux](https://redux.js.org).\n- [React](https://reactjs.org) is used to build client-side.\n- [Express](https://expressjs.com) is used to build server-side.\n- [Node-Postgres](https://www.npmjs.com/package/pg) is used as a [PostgreSQL](https://www.postgresql.org/) client for\n  [Node.js](https://nodejs.org/en/).\n- [JsonWebToken](https://www.npmjs.com/package/jsonwebtoken) is used to to decode, verify and generate\n  [JWT](https://en.wikipedia.org/wiki/JSON_Web_Token).\n- [JWT-decode](https://www.npmjs.com/package/jwt-decode) is used for decoding JWTs token which are Base64Url encoded.\n- [Bcrypt](https://www.npmjs.com/package/bcrypt) is used to hash passwords.\n- Some icons were taken from [IconFinder](https://www.iconfinder.com).\n\n## License\n\n[MIT](https://choosealicense.com/licenses/mit)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichal-radomski%2Fpern_stack_app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmichal-radomski%2Fpern_stack_app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichal-radomski%2Fpern_stack_app/lists"}