Siema.
Za rok kończę studia inżynierskie i w sumie pora, żebym zaczął pisać pracę. Do końca następnego tygodnia musze podać ostateczny temat pracy. Mam przygotowane kilka tematów i jeden z nich chciałbym zrealizować, jednak zanim zgłoszę ten temat chciałbym go z Wami przedyskutować, mianowicie jak trudne będzie jego zrealizowanie, biorąc pod uwagę moje umiejętności programowania i webdevu.
Chciałbym zrobić stronę internetową, która (najprościej mówiąc) będzie internetowym systemem do przeprowadzania egzaminów dla nauczycieli. Aktualnie wyobrażam sobie to tak, że na stronie będą dwa typy kont użytkowników: dla nauczyciela i dla ucznia. Nauczyciel będzie mógł w swoim koncie tworzyć egzaminy (w formie np. formularza z odpowiedziami A, B, C, D lub wpisaniem odpowiedzi), do których dostęp będzie dawać poszczególnym użytkownikom (wpisując np. unikalną nazwę użytkownika). Uczeń za pomocą konta uczniowskiego widzi na swoim koncie dostępne testy, rozwiązuje je, po czym po przesłaniu testu odpowiedzi są porównywane z poprawnymi odpowiedziami i jest wyliczany wynik, a także ocena.
Podczas rozbudowy aplikacji, w zależności od tego co będę potrafił zrobić, będą dodawane nowe funkcje, jak np. egzamin na czas, przeglądanie wyników dotychczasowych egzaminów, tworzenie grup przez nauczyciela, w których będzie mógł umieszczać wszystkich z danej klasy, ustawienie dostępności egzaminu w określonym zakresie czasowym (np. poniedziałek godzina 8:00-9:00) możliwość wysyłania wiadomości między użytkownikami (chociaż tego na tą chwilę raczej nie planuję). Oczywiście strona będzie przystosowana do wyświetlania zarówno na desktopie, jak i urządzeniach mobilnych.
Chciałbym się zapytać, czy stworzenie takiej aplikacji jest trudne?
Jeżeli chodzi o moje umiejętności, to dotychczas programowałem w zasadzie tylko w C++ i Javie. Z Javy przerobiłem książkę H. Schlidta „Java – przewodnik dla początkujących. Ogarniam w zasadzie wszystkie przedstawione tam zagadnienia OOP i zrobiłem potem kilka bardziej rozbudowanych programów, jakieś menadżery hotelarstwa, symulatory księgarni itd. Z algorytmiką też nie było u mnie większych problemów, potrafiłem tworzyć funkcje/metody, które w jakiś bardziej skomplikowany sposób przetwarzały dane albo coś robiły.
Niestety, z czasem doszedłem do wniosku, że nie chcę programować w Javie i ostatecznie stwierdziłem, że jeżeli zostanę zawodowym programistą, to raczej pójdę w webdev. Tylko problem polega na tym, że webdevu zacząłem się uczyć niedawno. Póki co jedynie dobrze ogarniam czystego html, css i framework Bootstrap. Teraz jestem w trakcie nauki JavaScript i potem chcę przejść do nauki PHP i MySQL. Niestety, z racji tego, że nic jeszcze nie programowałem w backendzie, to nie wiem, czy dałbym radę napisać powyższą apkę. Trochę się zorientowałem w temacie i rozmawiałem z kolegami z uczelni, że mógłbym wykorzystać do backendu framework Laravel – podobno z jego pomocą można dość łatwo napisać tego typu aplikacje, z kontami użytkowników.
Generalnie teraz planuję wyuczyć się jeszcze JS, potem ogarnąć czystego PHP i MySQL z poniższej książki:
https://helion.pl/ksiazki/php-i-mysql-dla-kazdego-wydanie-iii-marcin-lis,phmdk3.htm#format/e
I potem ogarnąć jakiś kurs Laravela. Nie wiem ile zajmie mi nauka tego wszystkiego, ale do końca czerwca, ewentualnie lipca powinienem się wyrobić. I zastanawiam się właśnie, czy to wystarczy, żeby zrobić taką apkę i żeby była udana na tyle, żebym mógł się obronić przynajmniej na 4? Wydaje mi się, że sama zasada działania apki, to raczej nie będzie nic trudnego, np. jeżeli chodzi o sprawdzanie testów – po prostu po zakończeniu testu, jest on wysyłany na serwer (chyba xd), gdzie jakaś funkcja sprawdza poprawne odpowiedzi i zwraca wynik, który jest następnie gdzieś zapisywany w bazie danych. Mam koncepcję jak to wszystko mniej więcej zrobić, tyle że gorzej to dla mnie wygląda bardziej od strony kont użytkowników i bazy danych, gdyż tak mówiłem, nigdy nic nie robiłem w backendzie.
Wiem, że się trochę rozpisałem, ale możecie mi coś doradzić, czy zrobienie takiej apki dla pojedynczego, początkującego webdeva będzie zbyt trudne, czy przy odrobinie samozaparcia dam radę do zrobić do końca stycznia przyszłego roku?
P.S Ktoś jeszcze mógłby zapytać: skoro programowałeś w Javie, to może w niej napisz jakąś apkę albo backend?
Sorry, ale nie i nie chcę się rozpisywać dlaczego, bo i tak Was zamęczyłem czytaniem. xD
I mam nadzieję, że dobry dział, w sumie mój problem dotyczy w większej części backendu w PHP.