{"id":15770547,"url":"https://github.com/benelan/ess-requests","last_synced_at":"2025-10-15T16:32:09.887Z","repository":{"id":37793071,"uuid":"313376438","full_name":"benelan/ess-requests","owner":"benelan","description":"This application streamlines the process of creating training and exam requests for Esri Support Services employees.","archived":false,"fork":false,"pushed_at":"2022-06-16T19:09:36.000Z","size":2051,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-19T06:45:28.838Z","etag":null,"topics":["bootstrap","eslint","esri","jest","jsdoc","nextjs","react","server","ssr","testing-library-react"],"latest_commit_sha":null,"homepage":"https://benelan.github.io/ess-requests/","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/benelan.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":"2020-11-16T17:24:31.000Z","updated_at":"2024-04-19T06:45:28.839Z","dependencies_parsed_at":"2022-06-23T19:44:12.363Z","dependency_job_id":null,"html_url":"https://github.com/benelan/ess-requests","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benelan%2Fess-requests","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benelan%2Fess-requests/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benelan%2Fess-requests/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benelan%2Fess-requests/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/benelan","download_url":"https://codeload.github.com/benelan/ess-requests/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219869610,"owners_count":16555227,"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":["bootstrap","eslint","esri","jest","jsdoc","nextjs","react","server","ssr","testing-library-react"],"created_at":"2024-10-04T14:42:50.950Z","updated_at":"2025-10-15T16:32:04.497Z","avatar_url":"https://github.com/benelan.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ESS Requests\n\nThis application streamlines the process of creating training and exam requests for Esri Support Services employees. The form extrapolates some of the required information such as who to send it to and which charge code and cost center to use. Once it is submitted it sends an email. If the email is not sent automatically, a template will be generated and opened in the user's default email app. It also logs the request to a CSV so that the administrator has easy access for reports.\n\nThis is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).\n\n## Getting Started\n\nThe ``emailSettings`` and ``from`` variables in ``email.config.js`` will need to be added. They are options for [nodemailer](https://nodemailer.com/about/).\n\nFirst, install the node modules:\n\n```bash\nnpm install\n```\n\nFor development, run the development server:\n\n```bash\nnpm run dev\n```\n\nYou can also build and run the application:\n\n```bash\nnpm run build\nnpm start\n```\n\nTo start the app for production with https use:\n\n```bash\nnpm run prod\n```\nCheck the Product Deployment section below for configuring https.\n\n## Developer Notes\n\nSince I used Next, the client routes are taken care of in the `/pages` directory, and the api routes are in `/pages/api`. The React components are in the `/components` directory, and there are a few modules with exported functions in `/utils`. The CSVs are saved to `/data`. If there is no CSV it will create one. Otherwise, if the headers match, it will append the new request information to the existing CSV. For more specific information check out `/docs/index.html`. This branch uses [nodemailer](https://nodemailer.com/about/) to send the email automatically.  If the email doesn't send, a template will be provided for the user to send it themselves. The ``flow`` branch uses [Microsoft Flow](https://us.flow.microsoft.com/en-us/) which is used internally.\n\n### Production Deployment\n\nThe production server hosts this application on the `requests` sub directory. In order to deploy to that server you will need to change the `assetPrefix` and `basePath` settings in `next.config.js` to `'/requests'`. I am also not including the prod server certs in this repo so you will need to generate those as well. Make sure to uncomment the https configuration in `server.js` and generate CA certificates before deploying.\n\n### Tooling\n\nThere is further documentation using JSDoc in the `docs` directory which can be regenerated by running:\n\n```bash\nnpm run doc\n```\n\nI used ESLint for this project and included some VSCode settings to lint on save. You can lint your code with:\n\n```bash\nnpm run lint\n```\n\nor to fix use:\n\n```bash\nnpm run lint:fix\n```\n\nI also added some Jest test suites that you can run to make sure everything is still working:\n\n```bash\nnpm run test\n```\n\n## Built With\n\n- [NextJS](https://nextjs.org/) - SSR Framework\n- [Bootstrap](https://getbootstrap.com/) - UI Kit\n- [Jest](https://jestjs.io/) - Test Framework\n- [Testing Library](https://testing-library.com/) React Test Utilities\n- [ESLint](https://eslint.org/) - Code Linting\n- [JSDoc](https://jsdoc.app/) - Documentation Generator\n-  ... and more (see `package.json`)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenelan%2Fess-requests","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbenelan%2Fess-requests","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenelan%2Fess-requests/lists"}