Contribute to the DSpace Development Fund
The newly established DSpace Development Fund supports the development of new features prioritized by DSpace Governance. For a list of planned features see the fund wiki page.
General
- The source code can be found on github: https://github.com/DSpace/dspace-angular
- There's a project board on waffle.io: https://waffle.io/DSpace/dspace-angular
Contributors
- Art Lowel (Atmire)
- William Welling
- James Silas Creel
- Tim Donohue
- Matteo Perelli
- Giuseppe Digilio
- Martin Walk
How to contribute
Prerequisites
- You'll need to be in the dspace-angular github team to get the required access. Send your github username to Art Lowel (Atmire) to get an invite.
- Fork the repository on Github
Workflow
Have a look at the project board
Take an issue that’s in the ready section and has nobody assigned to it
assign yourself
When you start working on it, move the issue to the “in progress” section
Work on a separate branch for the issue on your fork
- When you’re ready, fire a pull request
in the comments of the pull request, write something akin to “this PR connect’s to #{the ID of the issue}”. That way the issue will be moved automatically to the review column.
When at least two people have reviewed and approved your PR, it can be merged in master.
You can also help out by reviewing the pull requests of other people
Please keep an eye on your pull request afterwards, the reviewers may have questions or comments about it, or ask you to tackle things in a different way, before they can approve it
Most discussions about the task or the pull request can happen through the github & project board comments.
If it’s more complex you can bring it up in one of these meetings.
After your Pull Request has been merged, drag the issue to the done column on the project board. (this can also be automated by adding “this merge closes #{the id of the issue}” in the merge comment.
Learning Resources
General
- https://angular.io/styleguide - The official Angular2 for TypeScript Style Guide
- https://angular.io/docs/ts/latest/ - The official documentation for Angular 2 (with TypeScript). Includes a "5-min quick start", "step-by-step guide" and official API docs
- https://github.com/angular/angular - The official codebase for Angular 2. Where to submit issues, follow the code progression, etc.
- http://angularjs.blogspot.com/ - The Angular blog, which contains updates and blog posts from the Angular team.
- https://groups.google.com/forum/#!forum/angular - Google Group for Angular 1 or 2 discussions.
- https://angularair.com/ - A live video podcast all about Angular
- https://www.npmjs.com/package/npm-check-updates - A npm package for dependency management
- Scotch.io has a bunch of articles on various angular 2 topics
Typescript
- http://www.typescriptlang.org/ - The official documentation for the TypeScript language. Includes links to sample code, as well as a live in-browser editor/samples.
- See also the TypeScript Guidelines on the Prototype's wiki
RXJS
RxJS is used as part of angular 2 to deal with asynchronous data. A good grasp of RxJS is essential to write robust angular 2 code.
- A general introduction to Reactive Programming
- There are a bunch of resources on RxJS’ github
- Decision trees to find which operator to use when creating new sequences or using existing sequences → these are very useful during development
Universal
Universal is the angular sub-project that allows for angular apps to be rendered server-side
- Here‘s a high level document explaining it
- There are some videos on their github page
- William Welling has a test project to experiment with Angular Universal.
Redux
Redux is a set of design-patterns to manage state in a javascript application.
- The concepts are explained clearly, though independently from angular in the main redux docs
- There is also a great free video course on egghead
- @ngrx is an implementation of Redux for Angular 2 using RxJS
- Ducks is a way to structure redux applications to keep them as modular as possible that works well in practice.