Grails to Rails: Dual-Stack Module Recreation

Probíhá Zveřejněno před 2 měsíci K zaplacení v momentě doručení
Probíhá K zaplacení v momentě doručení

Contest: Recreate a Module for a Dual-Stack Application

Background: We are transitioning from an old legacy system built in Grails (a Java-based MVC framework similar to Ruby on Rails) to a modern stack using a Rails API and Angular frontend. The old and new systems are running in production side-by-side.

Scope of Work: Your task is to:

Understand and analyze the current module in the legacy Grails system (Java).

Recreate the frontend using Angular components, based on an already implemented reference site.

Write the backend logic (controller and model) in Ruby on Rails. Most models exist but may need additional methods to replicate the old functionality.

Key Considerations:

Adhere to key Rails principles such as DRY (Don’t Repeat Yourself) and convention over configuration.

Follow best practices for both Angular and Rails development.

Good test coverage is required. You should write appropriate unit tests for both the Angular frontend (e.g., Jasmine/Karma) and Rails backend (e.g., RSpec).

Version control uses Git, and all code should be committed regularly with appropriate commit messages.

The system is built to be started using Docker Compose. You should be familiar with Docker and able to run the system in a local development environment.

Module Length:

Service Class: ~300 lines of Java code

Controller: ~620 lines of Java code

Model: ~160 lines of Java code

Performance Considerations: The new code should be optimized for production use, maintaining or improving performance compared to the legacy system.

Opportunities for Future Work: This is the first module of many in our transition process. High-quality work delivered in an acceptable timeframe could lead to future assignments without the need for a new contest.

Angular Git Grails Java Ruby on Rails

Identifikační číslo projektu: #38719859

O projektu

15 nabídek Projekt na dálku Aktivní před 2 měsíci