From ce2b8f3d38943e25ea5d721ec2a1b6c0adc046f9 Mon Sep 17 00:00:00 2001 From: Fabian Haukedal Johansen Date: Wed, 15 Apr 2026 10:13:55 +0200 Subject: [PATCH 1/8] Initial commit --- .gitignore | 34 ++++++++++++++++++++++++++++++++++ README.md | 1 + 2 files changed, 35 insertions(+) create mode 100644 .gitignore create mode 100644 README.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e5cbb64 --- /dev/null +++ b/.gitignore @@ -0,0 +1,34 @@ +# Gradle files +.gradle/ +build/ + +# Local configuration file (sdk path, etc) +local.properties + +# Log/OS Files +*.log + +# Android Studio generated files and folders +captures/ +.externalNativeBuild/ +.cxx/ +*.aab +*.apk +output-metadata.json + +# IntelliJ +*.iml +.idea/ +misc.xml +deploymentTargetDropDown.xml +render.experimental.xml + +# Keystore files +*.jks +*.keystore + +# Google Services (e.g. APIs or Firebase) +google-services.json + +# Android Profiling +*.hprof diff --git a/README.md b/README.md new file mode 100644 index 0000000..7676e09 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# Study-Sprint \ No newline at end of file From 2a3c786e926372d2a5deef4f46f6ea61daabf569 Mon Sep 17 00:00:00 2001 From: Fabian Haukedal Johansen Date: Wed, 15 Apr 2026 10:18:43 +0200 Subject: [PATCH 2/8] Update .gitignore --- .gitignore | 49 ++++++++++++++++++++++++++++++++++++------------- 1 file changed, 36 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index e5cbb64..fa6c803 100644 --- a/.gitignore +++ b/.gitignore @@ -1,34 +1,57 @@ -# Gradle files +# Gradle / Android .gradle/ build/ - -# Local configuration file (sdk path, etc) local.properties - -# Log/OS Files -*.log - -# Android Studio generated files and folders captures/ .externalNativeBuild/ .cxx/ *.aab *.apk output-metadata.json +*.hprof -# IntelliJ +# Logs +*.log +npm-debug.* +yarn-debug.* +yarn-error.* + +# IntelliJ / Android Studio *.iml .idea/ misc.xml deploymentTargetDropDown.xml render.experimental.xml -# Keystore files +# Node / JS +node_modules/ +.metro-health-check* +dist/ +web-build/ +*.tsbuildinfo + +# Expo +.expo/ +expo-env.d.ts + +# Native generated / local artifacts +.kotlin/ +*.orig.* *.jks *.keystore +*.p8 +*.p12 +*.key +*.mobileprovision -# Google Services (e.g. APIs or Firebase) +# Environment / local config +.env*.local google-services.json -# Android Profiling -*.hprof +# macOS +.DS_Store +*.pem + +# Generated native folders for Expo prebuild +/android +/ios From 5790ee5cb6d45eb84e547bb4868516a6fa97fb50 Mon Sep 17 00:00:00 2001 From: Fabian Haukedal Johansen Date: Wed, 15 Apr 2026 10:31:41 +0200 Subject: [PATCH 3/8] Update README.md --- README.md | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 96 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7676e09..3917e24 100644 --- a/README.md +++ b/README.md @@ -1 +1,96 @@ -# Study-Sprint \ No newline at end of file +# --------------------------- +# Node / Expo / React Native +# --------------------------- +node_modules/ +.expo/ +dist/ +web-build/ +expo-env.d.ts +.metro-health-check* +*.tsbuildinfo + +# Local env files +.env*.local + +# Logs +*.log +npm-debug.* +yarn-debug.* +yarn-error.* + +# macOS +.DS_Store + +# --------------------------- +# Android / React Native native +# Keep /android and /ios ONLY if you commit native code +# Remove these two lines if you want generated native folders ignored +# --------------------------- +.gradle/ +build/ +local.properties +captures/ +.externalNativeBuild/ +.cxx/ +*.aab +*.apk +output-metadata.json +*.hprof +.kotlin/ + +# --------------------------- +# IntelliJ / Android Studio / VS Code +# --------------------------- +*.iml +.idea/ +.vscode/ +misc.xml +deploymentTargetDropDown.xml +render.experimental.xml + +# --------------------------- +# Secrets / signing / platform keys +# --------------------------- +*.jks +*.keystore +*.p8 +*.p12 +*.key +*.pem +*.mobileprovision +google-services.json + +# --------------------------- +# iOS / Android generated native folders +# Ignore these only for Expo managed/prebuild workflow +# Comment them out if you keep native code in repo +# --------------------------- +/android +/ios + +# --------------------------- +# .NET / ASP.NET Core Web API +# --------------------------- +**/bin/ +**/obj/ +**/.vs/ +*.user +*.rsuser +*.suo + +# App settings / local secrets +**/appsettings.Development.json +**/secrets.json + +# EF Core / local DB artifacts +*.db +*.db-shm +*.db-wal +*.sqlite +*.sqlite3 + +# --------------------------- +# Misc +# --------------------------- +*.orig.* +app-example From aef30b8a8f547101a890fe7faedf28ab297b375c Mon Sep 17 00:00:00 2001 From: Fabian Haukedal Johansen Date: Wed, 15 Apr 2026 10:32:01 +0200 Subject: [PATCH 4/8] Update .gitignore --- .gitignore | 99 +++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 69 insertions(+), 30 deletions(-) diff --git a/.gitignore b/.gitignore index fa6c803..3917e24 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,31 @@ -# Gradle / Android +# --------------------------- +# Node / Expo / React Native +# --------------------------- +node_modules/ +.expo/ +dist/ +web-build/ +expo-env.d.ts +.metro-health-check* +*.tsbuildinfo + +# Local env files +.env*.local + +# Logs +*.log +npm-debug.* +yarn-debug.* +yarn-error.* + +# macOS +.DS_Store + +# --------------------------- +# Android / React Native native +# Keep /android and /ios ONLY if you commit native code +# Remove these two lines if you want generated native folders ignored +# --------------------------- .gradle/ build/ local.properties @@ -9,49 +36,61 @@ captures/ *.apk output-metadata.json *.hprof +.kotlin/ -# Logs -*.log -npm-debug.* -yarn-debug.* -yarn-error.* - -# IntelliJ / Android Studio +# --------------------------- +# IntelliJ / Android Studio / VS Code +# --------------------------- *.iml .idea/ +.vscode/ misc.xml deploymentTargetDropDown.xml render.experimental.xml -# Node / JS -node_modules/ -.metro-health-check* -dist/ -web-build/ -*.tsbuildinfo - -# Expo -.expo/ -expo-env.d.ts - -# Native generated / local artifacts -.kotlin/ -*.orig.* +# --------------------------- +# Secrets / signing / platform keys +# --------------------------- *.jks *.keystore *.p8 *.p12 *.key +*.pem *.mobileprovision - -# Environment / local config -.env*.local google-services.json -# macOS -.DS_Store -*.pem - -# Generated native folders for Expo prebuild +# --------------------------- +# iOS / Android generated native folders +# Ignore these only for Expo managed/prebuild workflow +# Comment them out if you keep native code in repo +# --------------------------- /android /ios + +# --------------------------- +# .NET / ASP.NET Core Web API +# --------------------------- +**/bin/ +**/obj/ +**/.vs/ +*.user +*.rsuser +*.suo + +# App settings / local secrets +**/appsettings.Development.json +**/secrets.json + +# EF Core / local DB artifacts +*.db +*.db-shm +*.db-wal +*.sqlite +*.sqlite3 + +# --------------------------- +# Misc +# --------------------------- +*.orig.* +app-example From 582e8f13b083f54c48d5a2d05869dffa1b08d309 Mon Sep 17 00:00:00 2001 From: Fabian Haukedal Johansen Date: Wed, 15 Apr 2026 10:32:32 +0200 Subject: [PATCH 5/8] Update README.md --- README.md | 121 ++++++++++++++++-------------------------------------- 1 file changed, 36 insertions(+), 85 deletions(-) diff --git a/README.md b/README.md index 3917e24..7250f20 100644 --- a/README.md +++ b/README.md @@ -1,96 +1,47 @@ -# --------------------------- -# Node / Expo / React Native -# --------------------------- -node_modules/ -.expo/ -dist/ -web-build/ -expo-env.d.ts -.metro-health-check* -*.tsbuildinfo +# Study Sprint – React Native (Expo) -# Local env files -.env*.local +## How to run the source code -# Logs -*.log -npm-debug.* -yarn-debug.* -yarn-error.* +This explains how to run the app with Expo. -# macOS -.DS_Store +To use database features, create a `.env` file in the project root and set the following environment variables: -# --------------------------- -# Android / React Native native -# Keep /android and /ios ONLY if you commit native code -# Remove these two lines if you want generated native folders ignored -# --------------------------- -.gradle/ -build/ -local.properties -captures/ -.externalNativeBuild/ -.cxx/ -*.aab -*.apk -output-metadata.json -*.hprof -.kotlin/ +- `EXPO_PUBLIC_SUPABASE_URL=your_url` +- `EXPO_PUBLIC_SUPABASE_ANON_KEY=your_anon_key` -# --------------------------- -# IntelliJ / Android Studio / VS Code -# --------------------------- -*.iml -.idea/ -.vscode/ -misc.xml -deploymentTargetDropDown.xml -render.experimental.xml +## Requirements -# --------------------------- -# Secrets / signing / platform keys -# --------------------------- -*.jks -*.keystore -*.p8 -*.p12 -*.key -*.pem -*.mobileprovision -google-services.json +- Node.js +- npm +- Expo CLI +- Android Studio with an emulator OR Expo Go on a phone -# --------------------------- -# iOS / Android generated native folders -# Ignore these only for Expo managed/prebuild workflow -# Comment them out if you keep native code in repo -# --------------------------- -/android -/ios +## Install dependencies -# --------------------------- -# .NET / ASP.NET Core Web API -# --------------------------- -**/bin/ -**/obj/ -**/.vs/ -*.user -*.rsuser -*.suo +```bash +npm install +``` -# App settings / local secrets -**/appsettings.Development.json -**/secrets.json +## Run the app -# EF Core / local DB artifacts -*.db -*.db-shm -*.db-wal -*.sqlite -*.sqlite3 +```bash +npm run start +``` -# --------------------------- -# Misc -# --------------------------- -*.orig.* -app-example +After starting expo, you can: +- scan the QR code with Expo Go on your phone, or +- press a in the terminal to open the app in the Android emulator + +If you use the Android emulator, make sure it is already running before starting the app. + +## Requirements met + +- Code is clean and professional, and contains zero console.logs: 10% +- Pagination and load More functionality using range: 20% +- Auth is now also properly handled in root / _layout.tsx: 10% + +There is not a really a "test" I can do, because the user is unable to access anything other than auth-screen unless they are logged in. No matter which screen the user is on, unless they are logged in, they will be re-routed to auth. This is how I designed auth-management making a test difficult to simulate. On top of this, no note is loaded if user is not "authenticated". This is handled on the back-end with RLS. + +Thank you for a second chance, I have learned my lesson. + +- Total: 40% From 59f8e65393508558eb394eb57bc68b31c3584c2b Mon Sep 17 00:00:00 2001 From: Fabian Haukedal Johansen Date: Wed, 15 Apr 2026 10:32:47 +0200 Subject: [PATCH 6/8] Update README.md --- README.md | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/README.md b/README.md index 7250f20..cc43241 100644 --- a/README.md +++ b/README.md @@ -33,15 +33,3 @@ After starting expo, you can: - press a in the terminal to open the app in the Android emulator If you use the Android emulator, make sure it is already running before starting the app. - -## Requirements met - -- Code is clean and professional, and contains zero console.logs: 10% -- Pagination and load More functionality using range: 20% -- Auth is now also properly handled in root / _layout.tsx: 10% - -There is not a really a "test" I can do, because the user is unable to access anything other than auth-screen unless they are logged in. No matter which screen the user is on, unless they are logged in, they will be re-routed to auth. This is how I designed auth-management making a test difficult to simulate. On top of this, no note is loaded if user is not "authenticated". This is handled on the back-end with RLS. - -Thank you for a second chance, I have learned my lesson. - -- Total: 40% From 51791cab9c035f4294aced9c6dedb24074f13ef1 Mon Sep 17 00:00:00 2001 From: Fabian Haukedal Johansen Date: Wed, 15 Apr 2026 10:33:05 +0200 Subject: [PATCH 7/8] Update README.md --- README.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/README.md b/README.md index cc43241..e8672d9 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,6 @@ This explains how to run the app with Expo. -To use database features, create a `.env` file in the project root and set the following environment variables: - -- `EXPO_PUBLIC_SUPABASE_URL=your_url` -- `EXPO_PUBLIC_SUPABASE_ANON_KEY=your_anon_key` - ## Requirements - Node.js From 8c58425bb8d28fab308424104c544dcab972f708 Mon Sep 17 00:00:00 2001 From: Fabian Haukedal Johansen Date: Wed, 15 Apr 2026 11:36:11 +0200 Subject: [PATCH 8/8] Update .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 3917e24..483bc8a 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ expo-env.d.ts # Local env files .env*.local +.env # Logs *.log