{"id":29729173,"url":"https://github.com/ebukaodini/shift-fed-exam","last_synced_at":"2026-05-15T18:34:29.682Z","repository":{"id":299393063,"uuid":"1000363387","full_name":"ebukaodini/shift-fed-exam","owner":"ebukaodini","description":"Security issues","archived":false,"fork":false,"pushed_at":"2025-07-23T20:36:33.000Z","size":2751,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-09T18:06:53.299Z","etag":null,"topics":["adonisjs","adonisjs5","inertiajs","sqlite3","typescript"],"latest_commit_sha":null,"homepage":"https://security-issues.onrender.com/","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/ebukaodini.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":"2025-06-11T17:00:05.000Z","updated_at":"2025-07-23T21:07:59.000Z","dependencies_parsed_at":"2025-06-16T10:49:49.239Z","dependency_job_id":"22b5781b-fa2c-4883-81c9-53a644df93da","html_url":"https://github.com/ebukaodini/shift-fed-exam","commit_stats":null,"previous_names":["ebukaodini/shift-fed-exam"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ebukaodini/shift-fed-exam","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebukaodini%2Fshift-fed-exam","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebukaodini%2Fshift-fed-exam/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebukaodini%2Fshift-fed-exam/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebukaodini%2Fshift-fed-exam/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ebukaodini","download_url":"https://codeload.github.com/ebukaodini/shift-fed-exam/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebukaodini%2Fshift-fed-exam/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33074869,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-15T11:35:32.926Z","status":"ssl_error","status_checked_at":"2026-05-15T11:35:31.362Z","response_time":103,"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":["adonisjs","adonisjs5","inertiajs","sqlite3","typescript"],"created_at":"2025-07-25T04:00:34.447Z","updated_at":"2026-05-15T18:34:29.663Z","avatar_url":"https://github.com/ebukaodini.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Shift FED Exam\n\nHi there!  \nIn this exam you will extend and add new features to a simplified security issues management system.\nThe task's main purpose is to test your ability to learn new topics and deliver high quality digital products. It combines building UI components and a touch of server development as well.\n\n## Prerequisites\n\n- [Node.js](https://nodejs.org/) 20 or higher\n- npm 9 or higher\n- Git\n- A [GitHub](https://github.com) account\n\n## Getting Started\n\n1. Go [here](https://github.com/new/import) and import this repository into your account. Make sure to select the **private** option\n2. [Clone](https://try.github.io/) your new repository to your computer\n3. Install dependencies: `npm install`\n4. Setup env file: `cp .env.example .env`\n5. Generate app key: `node ace generate:key`\n6. Create database path: `mkdir tmp`\n7. Seed the database: `node ace migration:fresh \u0026\u0026 node ace db:seed`\n8. Start development server: `npm run dev`\n\nYou should now have the application running at http://localhost:3333\n\n## Available Commands\n\n```bash\nnpm run dev      # Start development server with hot reload\nnpm run build    # Build for production\nnpm start        # Start production server\nnpm test         # Run tests\nnpm run lint     # Check code style\nnpm run format   # Format code\n```\n\n## Tasks\n\nThe exam is split into 3 parts. The first part is about adding UI functionality. The second part goes a bit broader into the client-server integration and business logic.\nThe third part is about creativity and good \"big-picture\" intuition.\n\nAfter each completed step, please commit and push. The commit message should be something like `Part 1a - show content`, `Part 2b - search filters`.\n\n**Note that all tasks are required**\n\n### Part 1 - Security Issue item improvements\n\na. Our security issues list is only showing the title. Make it show the description as well, as following:  \n![content](images/part1a-content.png)  \nFriendly reminder to commit and push after completing this step.\n\nb. Some security analysts can't handle all issues, and want an option to hide some.\nAdd a hide button that will hide the issues from view. Make sure there is an option to restore it as well:  \n![hide issues](images/part1b-hide-show.gif)  \nFriendly reminder to commit and push after completing this step.\n\nc. Our security issue's data _might_ also contain severity labels (tags), but we're not making use of them in our UI. Fix that by adding the severity labels according to the following design below. PS: feel free to add more labels to the data (`database/temp-data.json`) if you need.\n![labels](images/part1c-severity-labels.png)  \nFriendly reminder to commit and push after completing this step.\n\nd. Step _a_ wasn't enough - some security issues have long descriptions. Add a show more / show less functionality when the description exceeds 3 lines, as following:  \n![show more/less](images/part1d-show-more-less.gif)  \nFriendly reminder to commit and push after completing this step.\n\n### Part 2 - List functionality\n\na. Security analysts are complaining that our search functionality isn't working properly. They gave the example that when searching for \"cryptographic\", the security issue titled \"Weak cryptographic implementation\" (id `843c90fe-c5da-493f-93c5-54c5d08b2640`) is not returned. Checking the data, that issue does exist.. Find the issue and fix it.  \nFriendly reminder to commit and push after completing this step.\n\nb. We're currently showing only 20 security issues, but there are more in the database. Implement a solution to display all issues.  \n**Keep in mind the number of security issues is planned to grow exponentially very soon so make sure to think of a proper solution.**\nFriendly reminder to commit and push after completing this step.\n\nc. There is a need to find security issues created before/after a certain date, and our designer is on vacation to design proper UI for it. Change the search functionality so that when searching for `after:27/09/2019 xss`, only security issues matching the word \"xss\" created _after_ 27/09/2019 will show. Add support for `before:[DATE]` and `reporter:[EMAIL]` as well.  \nFriendly reminder to commit and push after completing this step.\n\n### Part 3 - Your extra touch\n\nThink of a small addition to this project and make it happen.\nIt should involve adding something to the UI, or server (or both!).\nA good rule of thumb for the effort here is that it should not exceed the time that it took you to perform Part 2.  \n_Please describe the feature you've added on your email back to us_\n\n_Note:_ this step is also mandatory.  \nFriendly reminder to commit and push after completing this part.\n\n## Important Notes\n\n- **Quality First**: Test your work thoroughly. Consider edge cases and user experience.\n- **Best Practices**: Follow the established patterns in the codebase.\n- **Full-Stack Requirement**: This task involves both client and server code. Regardless of bonuses and part 3, in the end you should have touched both areas. If you haven't - you probably are not covering all our requirements.\n- **Questions Welcome**: If you have any questions regarding the task itself or its environment, feel free to ask.\n\n## Troubleshooting\n\n**Port already in use?** Try `npm run dev -- --port 3334`  \n**Database issues?** Delete `/tmp/db.sqlite3` and re-run the seed command  \n**Dependencies not installing?** Clear npm cache with `npm cache clean --force`\n\n## Submitting\n\nSend the repo's URL back to the email you got from us. Describe your extra touch (part 3), and any general notes you may have.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febukaodini%2Fshift-fed-exam","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Febukaodini%2Fshift-fed-exam","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febukaodini%2Fshift-fed-exam/lists"}