Budżet: 27000 UAH Termin: 7 dni
Budżet 3000 UAH na takie poprawki nie byłby dla mnie jako pracownika - ryzyko utraty postępów użytkowników jest droższe niż sama zadanie. Minimalnie bezpieczny etap - 28000 UAH i 7 dni roboczych, po uzyskaniu dostępu do kodu i bazy będę mógł dokładniej potwierdzić zakres.
Należy zaczynać nie od przycisku Sprawdź, ale od ochrony danych - backup bazy, kopia stagingowa, sprawdzenie aktualnego schematu postępu, potem migracja i testy na starych lekcjach. Ogólnie normalna logika - zachować wynik każdego ćwiczenia, zablokować ponowne edytowanie, liczyć postęp według pytań i dać użytkownikowi możliwość kontynuacji lekcji później z tego samego miejsca.
> 1 - robię staging i kopię zapasową bazy
> 2 - dodaję przechowywanie wyniku ćwiczenia - total_questions, correct_answers, answers, status, completed_at, attempts
> 3 - zmieniam Sprawdź tak, aby po sprawdzeniu odpowiedzi były zapisywane, a ćwiczenie było zablokowane
> 4 - usuwam zależność postępu od końcowego przycisku lekcji
> 5 - aktualizuję obliczenia postępu według completed_questions i accuracy pod przyszłe wyjście
> 6 - sprawdzam kompatybilność 32 lekcji, 32 zadań domowych i 8 testów bez usuwania starej struktury
Zobaczcie, tu jest niuans - stary postęp nie powinien być zapisywany na ślepo, ale starannie dopasowany do nowego modelu. W przeciwnym razie można uzyskać ładny przycisk, który zepsuje historię nauki, a to już klasyka gatunku - pośpieszysz się, a potem migracje zbierasz pincetą =/
Uściślę 2 punkty
> na czym napisany jest projekt - Laravel, WordPress, czysty PHP, Node.js czy inne
> czy istnieje już osobna tabela dla odpowiedzi użytkowników, czy odpowiedzi leżą w ogólnym polu lekcji
Podobne pod względem sensu przykłady Ingello
> https://business.ingello.com/platforma - platforma z osobistymi kontami, rolami i stabilną logiką danych
> https://business.ingello.com/forma-crm - skomplikowana logika CRM, uwzględnienie stanów i staranna praca z danymi
> https://business.ingello.com/fractal - automatyzacja procesów i architektura, gdzie ważne jest nie tylko dopisać przycisk, ale nie zepsuć systemu
Główny profil dla giełdy - https://systems-fl.ingello.com
Gotów wykonać przez staranny etap testowy - najpierw staging, potem sprawdzenie scenariuszy, potem przeniesienie na produkcję. Bez dostępu do kodu i bazy nie będę w stanie podać dokładnej oceny, ale z opisu to raczej niewielka poprawka architektoniczna, a nie zadanie na kilka godzin.