An Application to track friends and the friends network. The current implementation allows user to add friends to the network and visualize the relationship with a network graph of friends.
The repo includes
- Source code
- State management with NgRx
- Data visualization with d3
- UI components from Angular Material
- Unit tests with jasmine/karma
- e2e testing with Cypress
- User can add a person to their friends list by adding their name and their friends name in the list.
- User can enhance their friends network by consecutively adding friends and their friends.
- User cannot add the existing friend's information again.
Few enhancements on top of my mind.
- Adding filter capability to the network graph to filter out and focus on few relationships.
- Making the application more accessible.
- Adding externalization and localization of data on the application.
- Allow user to pick and edit certain relationships.
- Ability to export and import friends network.
- Increasing the unit test coverage throughout.
- Think outside of the canonical use of the D3 graph. (probably to increase performance)
- Add sophistication to the graph component to adjust its size upon the volume of data that is being shown.
- Add logging to the application and more error handling.
This project was generated with Angular CLI version 10.0.8.
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.
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
.
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.
Run ng test
to execute the unit tests via Karma.
To get more help on the Angular CLI use ng help
or go check out the Angular CLI README.