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%