|
1 |
| -# CodeInstituteUserCentricAlgorithms |
| 1 | +# Algorithm Benchmarks |
2 | 2 |
|
3 |
| -This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.0.2. |
| 3 | +As a programmer you need to always leverage between several possible different solutions the one that would be most efficient. One common problem is the sorting, inserting or accessing data. To solve this problem, along programming history, several algorithms have been created. This project attempts to help a fellow programmer to choose which algorithm shall be used by providing a benchmarking operationg and plotting the results in a variety of graphs. |
4 | 4 |
|
5 |
| -## Development server |
| 5 | +## UX |
6 | 6 |
|
7 |
| -Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. |
| 7 | +The intended user of this website is a programmer of any level who wants to pick an algorithm for its desired implementation. It will primarily focus in low complexity algorithms like the ones one would study in Computer Science undergraduate courses. |
8 | 8 |
|
9 |
| -## Code scaffolding |
| 9 | +A base benchmark will be provided but the user would be able to generate them based on personalized data provided. A randomized dataset can also be generated on demand, providing the user with different options in terms of size and data type, as well as option to generate best-case and worst-case scenarios. |
10 | 10 |
|
11 |
| -Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. |
| 11 | +On the first iteration only sorting algorithms will be provided, leaving the project open for extension for other types of algorithms. |
12 | 12 |
|
13 |
| -## Build |
| 13 | +It is also expected that the website will be desktop-first, as the main audience of this project will primarily be researching this while working on a project on the side, and it's unreasonable to think this will be done on a mobile. It will be however be designed with a responsive approach for those who decide to use a smaller screen size while using this website. |
14 | 14 |
|
15 |
| -Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build. |
| 15 | +### User Stories |
16 | 16 |
|
17 |
| -## Running unit tests |
| 17 | +- As a user, I want to be able to see different tables of algorithm efficiency, so I can pick the best suited to my project. |
| 18 | +- As a user, I want to be able to run different benchmarks for predefined algorithms, so I can be certain that the results adjust to my specific use case. |
| 19 | +- As a user, I would like to be able to use my very own data sets or algorithms so I can compare with the predefined ones and have a clearer picture of my options. |
| 20 | + |
| 21 | +### Wireframes |
| 22 | + |
| 23 | +This section is also where you would share links to any wireframes, mockups, diagrams etc. that you created as part of the design process. These files should themselves either be included in the project itself (in an separate directory), or just hosted elsewhere online and can be in any format that is viewable inside the browser. |
| 24 | + |
| 25 | +## Features |
| 26 | + |
| 27 | +In this section, you should go over the different parts of your project, and describe each in a sentence or so. |
| 28 | + |
| 29 | +### Existing Features |
| 30 | + |
| 31 | +- Feature 1 - allows users X to achieve Y, by having them fill out Z |
| 32 | +- ... |
| 33 | + |
| 34 | +For some/all of your features, you may choose to reference the specific project files that implement them, although this is entirely optional. |
| 35 | + |
| 36 | +In addition, you may also use this section to discuss plans for additional features to be implemented in the future: |
| 37 | + |
| 38 | +### Features Left to Implement |
| 39 | + |
| 40 | +- Another feature idea |
| 41 | + |
| 42 | +## Technologies Used |
| 43 | + |
| 44 | +In this section, you should mention all of the languages, frameworks, libraries, and any other tools that you have used to construct this project. For each, provide its name, a link to its official site and a short sentence of why it was used. |
| 45 | + |
| 46 | +- This project was scaffolded by [Angular CLI](https://github.com/angular/angular-cli) version 8.0.2. |
| 47 | +- Project organization and task management provided by [GitHub and GitHub Projects](https://github.com) |
| 48 | + |
| 49 | +## Testing |
| 50 | + |
| 51 | +In this section, you need to convince the assessor that you have conducted enough testing to legitimately believe that the site works well. Essentially, in this part you will want to go over all of your user stories from the UX section and ensure that they all work as intended, with the project providing an easy and straightforward way for the users to achieve their goals. |
| 52 | + |
| 53 | +Whenever it is feasible, prefer to automate your tests, and if you've done so, provide a brief explanation of your approach, link to the test file(s) and explain how to run them. |
| 54 | + |
| 55 | +For any scenarios that have not been automated, test the user stories manually and provide as much detail as is relevant. A particularly useful form for describing your testing process is via scenarios, such as: |
| 56 | + |
| 57 | +1. Contact form: |
| 58 | + 1. Go to the "Contact Us" page |
| 59 | + 2. Try to submit the empty form and verify that an error message about the required fields appears |
| 60 | + 3. Try to submit the form with an invalid email address and verify that a relevant error message appears |
| 61 | + 4. Try to submit the form with all inputs valid and verify that a success message appears. |
| 62 | + |
| 63 | +In addition, you should mention in this section how your project looks and works on different browsers and screen sizes. |
| 64 | + |
| 65 | +You should also mention in this section any interesting bugs or problems you discovered during your testing, even if you haven't addressed them yet. |
| 66 | + |
| 67 | +If this section grows too long, you may want to split it off into a separate file and link to it from here. |
| 68 | + |
| 69 | +### Running unit tests |
18 | 70 |
|
19 | 71 | Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
20 | 72 |
|
21 |
| -## Running end-to-end tests |
| 73 | +### Running end-to-end tests |
22 | 74 |
|
23 | 75 | Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
|
24 | 76 |
|
25 |
| -## Further help |
| 77 | +## Deployment |
| 78 | + |
| 79 | +This section should describe the process you went through to deploy the project to a hosting platform (e.g. GitHub Pages or Heroku). |
| 80 | + |
| 81 | +In particular, you should provide all details of the differences between the deployed version and the development version, if any, including: |
| 82 | + |
| 83 | +- Different values for environment variables (Heroku Config Vars)? |
| 84 | +- Different configuration files? |
| 85 | +- Separate git branch? |
| 86 | + |
| 87 | +In addition, if it is not obvious, you should also describe how to run your code locally. |
| 88 | + |
| 89 | +## Credits |
| 90 | + |
| 91 | +### Content |
| 92 | + |
| 93 | +- The text for section Y was copied from the [Wikipedia article Z](https://en.wikipedia.org/wiki/Z) |
| 94 | + |
| 95 | +### Media |
| 96 | + |
| 97 | +- The photos used in this site were obtained from ... |
| 98 | + |
| 99 | +### Acknowledgements |
| 100 | + |
| 101 | +- I received inspiration for this project while assisting some students I tutor through GrindsCentre. |
26 | 102 |
|
27 |
| -To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). |
| 103 | +- Algorithm Implementations: https://khan4019.github.io/front-end-Interview-Questions/sort.html |
| 104 | +- https://dev.to/wangonya/sorting-algorithms-with-javascript-part-1-4aca |
| 105 | +- https://dev.to/wangonya/sorting-algorithms-with-javascript-part-2-3g51 |
0 commit comments