Visão Geral
Curso DSpace for Developers Extending and Contributing: Este curso é voltado para desenvolvedores que desejam compreender profundamente a arquitetura do DSpace, aprender como estender suas funcionalidades, criar novos módulos e contribuir com o desenvolvimento da comunidade open source. Os participantes terão uma visão prática sobre como trabalhar com o código-fonte do DSpace, boas práticas de desenvolvimento e como interagir com a comunidade global do projeto.
Conteúdo Programatico
Module 1 – DSpace Codebase and Architecture (3h)
- Overview of DSpace technologies (Java, Spring, Angular)
- Understanding the modular structure (Core, REST, UI)
- DSpace 7 architecture and services
- Developer tools and setup (Maven, IntelliJ, Git)
Module 2 – Building and Running DSpace from Source (3h)
- Cloning the repository and environment configuration
- Compilation with Maven
- Running backend and frontend independently
- Debugging and logs
Module 3 – Creating Custom Modules and Services (4h)
- Writing custom Java services
- Extending core logic
- Using dependency injection with Spring
- Managing events and listeners
Module 4 – Extending the REST API (4h)
- REST API overview and structure
- Creating new endpoints
- Input/output models and validation
- Security and access control in REST API
Module 5 – Customizing the Angular UI (3h)
- Angular UI structure and components
- Theming and UI modules
- Integrating new services and forms
- Building and deploying the UI
Module 6 – Contributing to the DSpace Community (3h)
- Community workflow and contribution guidelines
- GitHub pull requests and code reviews
- Coding standards and documentation
- Participating in mailing lists and forums
Module 7 – Testing and Best Practices (2h)
- Writing unit and integration tests
- Using Docker for testing and development
- Continuous integration and GitHub Actions
- Maintaining custom features across versions
Module 8 – Final Project: Custom Extension Development (2h)
- Hands-on coding: developing a real custom module or API
- Documenting the extension
- Feedback and evaluation by the instructor
- Next steps for real-world deployment