https://intern-apply.herokuapp.com
For more information about the system see /doc
- Please use a windows OS machine
- Please make sure that Chrome browser is installed (and please run the front end tests on Chrome and not in the background)
- Please set the system timezone to Winnipeg time zone.
- Clone the project
- Navigate to the project directory on your terminal
- In the terminal, run
npm install
to install all project dependencies - In the terminal, run
ng build
to build the web front end - In the terminal, run
node server
to start the server on localhost:3000 - Use browser to navigate to localhost:3000
run npm test
to run backend tests. These tests include back-end Unit, Integration, and System tests (Note: will have to stop node server
to run these tests)
run ng test
to run web front end integration tests (please run the front end tests on Chrome and not in the background)
run npm run e2e
to run web front end system tests (please run the front end tests on Chrome and not in the background)
Note: Front-end does not contain any Unit tests because there are no units to test. The web is implementing a thin client architecture, all the logic is in the back-end server.
Troubleshooting: If the tests do not pass at first, please try again since the integration and acceptance tests are using a shared remote test database. We justify this decission based on the scale of our project, the small amount of developers in our group, and the complexity and difficulty to automatically launch a local test MySQL database. Instead we focused on creating more than 300 essential tests across our application to make it very robust.
- After some team discussion we decided to put the Registration feature on hold and focus on other more important aspects and features.
- We decided that for simplicity and because of the size of our project, we would use a remote test DB for integration and acceptance tests, instead of using a local DB.
- We decided to not implement certain features that were going to use the Registration feature and were supposed to be restricted to admin users, as we would need another way to restrict them. This included viewing the survey results.
- We decided to leave the if/else blocks that check the error codes corresponding to invalid fields, instead of having the fields listen for the appropriate error related to them. Our justification is that it is too complex to have the fields listen to the errors and we do not have enough time to implement it.
- We decided to do the nuclear option and create/delete our tables before all the tests, for simplicity. Specifically for system and e2e tests, it also appeared too complex to add test fixtures and launch a specific test db, so in order to focus our efforts on having a wide test coverage, we opted for executing SQL queries before and after our system tests for cleanup.
- Job-list.
- A display of all available jobs.
- Can be found on the home page.
- Add-job
- Can be found after clicking on the "Add Job" link on the nav-bar
- Job-details
- Can be found after clicking on any of the jobs on the home page
- Contact-us
- Can be found after clicking on the "Contact" link in the footer
- Comments
- Can be found after clicking on any of the jobs
- Survey
- Can be found in the footer
- Rating
- Can be found after clicking on any of the jobs
- Salary
- Can be found after clicking on any of the jobs
- Search
- Can be found in the navigation bar
- Q&A Board
- Can be found in the navigation bar
- Answers
- Can be found after clicking on "Q&A" in the navbar, and then clicking on a question
- Apply button
- Fully functional apply button can now be found inside of every job