# Hozzájárulási útmutató Köszönjük, ha programozással segíted a munkánkat!\ A folytatáshoz szükséged lesz egy MacOS-t, Linux-ot vagy Windows-t futtató számítógépre, minimális programozási tapasztalatra és egy kis angoltudásra.\ Segít, ha már gyakorlottabb vagy a programozásban, és ha ismered a [Git](https://git-scm.com/) működését. ;) ## Miben segítsek? Kérünk, olyan dologgal járulj hozzá a **Firká**hoz, ami valószínűleg **sok embernek hasznos lehet**. Szeretnénk egy minél teljeskörűbb iskolai asszisztenst létrehozni, de az iskolaspecifikus, vagy külön neked hasznos funkciók helye inkább legyen a saját Fork-od. Fontos, hogy **mielőtt egy nagyobb méretű projektbe belekezdenél, futtasd meg ötletedet a [Discord szerverünkön](https://discord.gg/6DvjyPAw2T)**, ahol még azelőtt tudunk tanácsot adni, hogy sok-sok órát beleöltél volna egy esetleg felesleges dologba. A legjobban annak örülünk, ha az [Issues](https://github.com/QwIT-Development/app-legacy/issues) oldalról szemezgetsz. Ha még új vagy a Flutterben, ajánljuk figyelmedbe a viszonylag könnyen javítható hibákat, ha éppen van ilyen. ## Hogyan segítsek? Nem ígérhetünk itt sem programozás-, sem Git-kurzust, de a projektspecifikus dolgokat leírjuk, és segítünk a Flutter telepítésében. A **Firka** a Google által pár éve létrehozott **[Flutter](https://flutter.dev/)** keretrendszert használja, aminek nyelve a **[Dart](https://dart.dev/)**. Ha ismered a JavaScript, C#, Java, C++, vagy egyéb hasonló programnyelvek működését, **nem fog nagy gondot okozni a használata.** A felhasználói felület létrehozásában az is segíthet, ha foglalkoztál már korábban weboldalakkal vagy alkalmazásfejlesztéssel. Ha még nem használtad a Flutter-t, mindenképp böngészd át a [YouTube csatornájukat](https://www.youtube.com/channel/UCwXdFgeE9KYzlDdR7TG9cMw). Kód vagy UI teszteléséhez Flutter telepítése nélkül is használhatod a [DartPad](https://dartpad.dev/)-et. ### Segédlet a flutter telepítéshez Az alkalmazással kompatibilis flutter verziót (**3.27.1**) itt találod: - [Windows](https://storage.googleapis.com/flutter_infra_release/releases/stable/windows/flutter_windows_3.27.1-stable.zip) - [Linux](https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.27.1-stable.tar.xz) - [MacOS x64](https://storage.googleapis.com/flutter_infra_release/releases/stable/macos/flutter_macos_3.27.1-stable.zip) - [MacOS arm64](https://storage.googleapis.com/flutter_infra_release/releases/stable/macos/flutter_macos_arm64_3.27.1-stable.zip) Ha nem értesz a Git-hez, akkor olvasd el a következő [cikket](https://freedium.cfd/https://medium.com/envienta-magyarorsz%C3%A1g/git-%C3%A9s-github-gyorstalpal%C3%B3-f2d78a732deb), viszont arra kérünk, hogy tapasztalataidat először egy új repoban próbáld ki. Ha már nagyjából értesz a Githez, akkor várjuk hozzájárulásodat. Készíts egy Fork-ot a saját GitHub fiókod alá. A **Firka** legfrissebb, verzióját a [master](https://github.com/QwIT-Development/app-legacy)-en találod. Kérjük ide Commit-olj és ide célozd a Fork-odból a Pull Request-edet. Írd le benne, hogy mit változtattál és ha lehet, csatolj képernyőképet is a működő építésedből.\ Minél gyakrabban készíts minél részletesebben elnevezett Commit-okat, hogy mások is el tudjanak igazodni az általad beküldött kódban. ### Segédlet az app építéséhez 1. Forráskód letöltése: ```sh git clone https://github.com/QwIT-Development/app-legacy.git cd app-legacy ``` 2. Csomagok telepítése:\ Windowson futtasd a következő scriptet: `fix-pub.bat`\ Linuxon és MacOS-en pedig ezt: `fix-pub.sh` 3. Java feltelepítése\ Az app nem tud megépülni, ha nincs telepítve **JDK 17**.\ Töltsd le innét a [JDK-t](https://adoptium.net/temurin/releases/?version=17&package=jdk) és telepítsd fel.\ (Ne felejtsd el kiválasztani a rendszeredet és a architektúrát) 4. Signkey generálása:\ A `refilc/android` mappában futtasd a következő parancsot: `keytool -genkey -v -keystore key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key`\ Majd töltsd ki a `key.properties` fájlt a következővel: ```properties storePassword= keyPassword= keyAlias=key storeFile=key.jks ``` Majd ezt a fájlt másold le és illeszd be ebbe is: `debugkey.properties`\ **FONTOS:** A `key.jks` és a `key.properties` fájlokat ne tedd közzé! 5. Az alkalmazás építése:\ Menj be a `refilc` mappába - Ha Androidra építesz, futtasd windowson a `build.bat`-ot, Linuxon és MacOS-en pedig a `build.sh`-t.\ - Ha iOS-re építesz, akkor futtasd a `build-ipa.sh`-t.\ **FONTOS:** Az iOS építéshez szükséged lesz egy MacOS rendszerre és egy Apple fejlesztői fiókra. --- Az általad fejlesztett funkciók mellé a Változásnaplóba bekerül a GitHub felhasználóneved.\ Ha jelentős és rendszeres hozzájáruló vagy, Discord-on megkaphatod a `Contributor` rangot! Ha bárhol elakadtál vagy kérdésed van, keress bátran Discord-on! **Jó fejlesztést kívánunk!**