{"id":18720833,"url":"https://github.com/msichterman/auth-and-privileges","last_synced_at":"2026-04-10T11:04:40.738Z","repository":{"id":44315073,"uuid":"221979033","full_name":"msichterman/auth-and-privileges","owner":"msichterman","description":"Full-stack web application that integrates basic security protocols such as authorization, authentication, and varying user privileges.","archived":false,"fork":false,"pushed_at":"2023-01-07T12:28:48.000Z","size":1208,"stargazers_count":1,"open_issues_count":15,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-05-19T15:11:33.752Z","etag":null,"topics":["axios","bcrypt","expressjs","jsonwebtokens","mongodb","mongoose","nodejs","react","react-router","reactstrap","redux","redux-thunk"],"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/msichterman.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":"2019-11-15T18:13:23.000Z","updated_at":"2023-03-09T02:29:04.000Z","dependencies_parsed_at":"2023-02-07T04:02:28.507Z","dependency_job_id":null,"html_url":"https://github.com/msichterman/auth-and-privileges","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/msichterman/auth-and-privileges","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msichterman%2Fauth-and-privileges","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msichterman%2Fauth-and-privileges/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msichterman%2Fauth-and-privileges/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msichterman%2Fauth-and-privileges/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/msichterman","download_url":"https://codeload.github.com/msichterman/auth-and-privileges/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msichterman%2Fauth-and-privileges/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31639526,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T07:40:12.752Z","status":"ssl_error","status_checked_at":"2026-04-10T07:40:11.664Z","response_time":98,"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":["axios","bcrypt","expressjs","jsonwebtokens","mongodb","mongoose","nodejs","react","react-router","reactstrap","redux","redux-thunk"],"created_at":"2024-11-07T13:32:46.861Z","updated_at":"2026-04-10T11:04:40.705Z","avatar_url":"https://github.com/msichterman.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![MSICH - Personal Site](https://img.shields.io/badge/MSICH-Personal%20Site-0892d0)](https://msich.dev/)\u0026emsp;\n[![Twitter Follow](https://img.shields.io/twitter/follow/mattsichterman?style=social)](https://twitter.com/mattsichterman)\u0026emsp;\n[![Follow on GitHub](https://img.shields.io/github/followers/msichterman?label=Follow%20on%20Github\u0026style=social)](https://github.com/msichterman)\u0026emsp;\n# Auth and Privileges - \"Office Furniture Factory, LLC\" Mock Business Platform\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./frontend-auth-and-privileges/public/safe.svg\" alt=\"Auth and Privileges illustration\" width=\"500px\"\u003e\n\u003c/p\u003e\n\n## Application Description\nWe created a web application that integrates basic security protocols such as authentication, authorization, and user privileges. The application is essentially a simple business application for a business that produces and sells office furniture. The user roles and privileges are setup like so:\n\n| Role | Dashboard Privileges | Product Privileges | Additional Notes |\n| :---: | :---: | :---: | :---: |\n| Admin | Manage all users | Manage both price and quantity | n/a |\n| Production Manager | Manage Production Employees | Manage quantity | n/a |\n| Production Employee | n/a | View only | n/a |\n| Sales Manager | Manage Sales Employees | Manage price | n/a |\n| Sales Employee | n/a | View only | n/a |\n| User | n/a | View only | Default role on sign up, needs confirmation for role and salary from an Admin |\n\n\n## What Technologies are Being Used?\n### Full-Stack JavaScript - MERN Stack\n* M - [MongoDB](https://www.mongodb.com/), a general purpose, document-based, distributed database.\n  * [Mongoose](https://mongoosejs.com/) for elegant mongodb object modeling for Node.js.\n  \n* E - [ExpressJS](https://expressjs.com/), a minimal and flexible Node.js web application framework for creating robust APIs.\n\n* R - [React](https://reactjs.org/), a JavaScript library for building user interfaces.\n  * [reactstrap](https://reactstrap.github.io/) for the component library.\n  * [react-router](https://reacttraining.com/react-router/) for routing.\n  * [redux](https://redux.js.org/) for managing global state.\n  * [react-redux](https://react-redux.js.org/) for official React bindings in Redux.\n  * [redux-thunk](https://www.npmjs.com/package/redux-thunk) for Thunk middleware in Redux.\n  * [axios](https://www.npmjs.com/package/axios) for sending asynchronous HTTP requests to API endpoints and performing CRUD operations.\n  \n* N - [Node.js](https://nodejs.org/), an asynchronous event-driven JavaScript runtime designed to build scalable network applications.\n  * [jsonwebtokens](https://www.npmjs.com/package/jsonwebtoken) for implementing JSON Web Tokens.\n  * [bcrypt](https://www.npmjs.com/package/bcryptjs) for hashing passwords.\n\n## Getting Started\nIn order to use the application locally, you'll need to do a few things first.\n\n1. Clone this repository and `cd` into the repository's directory\n```\ngit clone https://github.com/msichterman/auth-and-privileges.git \u0026\u0026 cd ./auth-and-privileges\n```\n\n2. Install all of the `node_modules` required for the project. Depending on your computer's configuration, you may need to prefix this command with a `sudo`.\n```\nnpm install \u0026\u0026 npm run client-install\n```\nor\n```\nsudo npm install \u0026\u0026 sudo npm run client-install\n```\n\n3. Lastly, run the following command to get the project off the ground. This command will not only build your JS files, but it will also auto-compile your files on every file save. This allows for hot reloading on-save when the backend and/or frontend code is updated.\n\n```\nnpm run dev\n```\n\n4. Head over to [http://localhost:3000](http://localhost:3000) to see the application live!\n\n## File Structure\n\n    auth-and-privileges/\n    ├── ...\n    │\n    ├── config/                                 \n    │   └── default.json                            # Info such as MongoDB URI and JWT Secret\n    │\n    ├── frontend-auth-and-privileges/               # The entire React frontend application\n    │   ├── ...\n    │   │\n    │   ├── public/                                 # Stores assets like images and fonts\n    │   │   ├── ...\n    │   │   └── index.html                          # The overall page template\n    │   │\n    │   └── src/\n    │       ├── index.js                            # The JavaScript entry point\n    │       ├── ...\n    │       ├── Routes.js                           # Defines all of the frontend routes                            \n    │       ├── store.js                            # Sets up the Redux store\n    │       │\n    │       ├── components/                         # Any component featured within a container\n    │       │   └── ...\n    │       │\n    │       ├── containers/                         # Makes up the pages\n    │       │   └── ...\n    │       │\n    │       ├── actions/                            # Redux actions\n    │       │   ├── ...\n    │       │   └── types.js                        # Defines all the types of actions\n    │       │\n    │       ├── reducers/                           # Redux reducers\n    │       │   ├── ...\n    │       │   └── index.js                        # Combines all of the reducers\n    │       │\n    │       └── utils/\n    │           ├── custom-hooks.js                 # Any custom hooks\n    │           │\n    │           └── CustomRoutes/                   # The custom route components that help with routing and redirects\n    │               └── ...\n    │\n    ├── middleware/                                 # Middleware for the APIs\n    │   └── ...\n    │\n    ├── models/                                     # MongoDB models defined by schemas\n    │   └── ...\n    │\n    ├── routes/\n    │   └── api/                                    # Defines ExpressJS API endpoints \n    │       └── ...\n    │\n    └── server.js                                   # Defines backend MongoDB connection, routes, and port\n\n## References\n* [Serverless Stack](https://serverless-stack.com/#table-of-contents) helped with implementing the React frontend including functional components, hooks, authenticated routing, and overall frontend structure.\n* Brad Traversy's \"Learn The MERN Stack\" series on YouTube, which guided the development of the overall full-stack application.\n    * [Learn The MERN Stack - YouTube Series](https://www.youtube.com/playlist?list=PLillGF-RfqbbiTGgA77tGO426V3hRF9iE)\n    * [\"MERN Shopping List\" Application - GitHub Repository](https://github.com/bradtraversy/mern_shopping_list)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsichterman%2Fauth-and-privileges","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmsichterman%2Fauth-and-privileges","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsichterman%2Fauth-and-privileges/lists"}