From ec8a46e9862b1194584049fecbc5a31192b6a3d4 Mon Sep 17 00:00:00 2001 From: Andrew Date: Mon, 4 Nov 2024 19:53:55 +0000 Subject: [PATCH] [FYP]: Structuring --- year4/semester1/fyp/ideas | 1 - year4/semester1/fyp/iompar/.gitignore | 20 + year4/semester1/fyp/iompar/README.md | 50 + year4/semester1/fyp/iompar/app.json | 36 + .../fyp/iompar/app/(tabs)/_layout.tsx | 37 + .../fyp/iompar/app/(tabs)/explore.tsx | 102 + .../semester1/fyp/iompar/app/(tabs)/index.tsx | 103 + year4/semester1/fyp/iompar/app/+html.tsx | 39 + year4/semester1/fyp/iompar/app/+not-found.tsx | 32 + year4/semester1/fyp/iompar/app/_layout.tsx | 37 + .../iompar/assets/fonts/SpaceMono-Regular.ttf | Bin 0 -> 93252 bytes .../iompar/assets/images/adaptive-icon.png | Bin 0 -> 17547 bytes .../fyp/iompar/assets/images/favicon.png | Bin 0 -> 1466 bytes .../fyp/iompar/assets/images/icon.png | Bin 0 -> 22380 bytes .../assets/images/partial-react-logo.png | Bin 0 -> 5075 bytes .../fyp/iompar/assets/images/react-logo.png | Bin 0 -> 6341 bytes .../iompar/assets/images/react-logo@2x.png | Bin 0 -> 14225 bytes .../iompar/assets/images/react-logo@3x.png | Bin 0 -> 21252 bytes .../fyp/iompar/assets/images/splash.png | Bin 0 -> 47346 bytes year4/semester1/fyp/iompar/babel.config.js | 6 + .../fyp/iompar/components/Collapsible.tsx | 41 + .../fyp/iompar/components/ExternalLink.tsx | 24 + .../fyp/iompar/components/HelloWave.tsx | 37 + .../iompar/components/ParallaxScrollView.tsx | 76 + .../fyp/iompar/components/ThemedText.tsx | 60 + .../fyp/iompar/components/ThemedView.tsx | 14 + .../components/__tests__/ThemedText-test.tsx | 10 + .../__snapshots__/ThemedText-test.tsx.snap | 24 + .../components/navigation/TabBarIcon.tsx | 9 + .../semester1/fyp/iompar/constants/Colors.ts | 26 + .../fyp/iompar/hooks/useColorScheme.ts | 1 + .../fyp/iompar/hooks/useColorScheme.web.ts | 8 + .../fyp/iompar/hooks/useThemeColor.ts | 22 + year4/semester1/fyp/iompar/package-lock.json | 20008 ++++++++++++++++ year4/semester1/fyp/iompar/package.json | 50 + .../fyp/iompar/scripts/reset-project.js | 73 + year4/semester1/fyp/iompar/tsconfig.json | 17 + .../CT413-FYP_Guidelines_2024_25.pdf | Bin 0 -> 355139 bytes .../fyp/materials/CT413_PDP_S001.pdf | Bin 0 -> 425581 bytes .../fyp/materials/CT413_PDP_S002.pdf | Bin 0 -> 2738188 bytes .../fyp/materials/CT413_PDP_S003.pdf | Bin 0 -> 481271 bytes year4/semester1/fyp/notes | 27 - year4/semester1/fyp/prefs | 74 - 43 files changed, 20962 insertions(+), 102 deletions(-) delete mode 100644 year4/semester1/fyp/ideas create mode 100644 year4/semester1/fyp/iompar/.gitignore create mode 100644 year4/semester1/fyp/iompar/README.md create mode 100644 year4/semester1/fyp/iompar/app.json create mode 100644 year4/semester1/fyp/iompar/app/(tabs)/_layout.tsx create mode 100644 year4/semester1/fyp/iompar/app/(tabs)/explore.tsx create mode 100644 year4/semester1/fyp/iompar/app/(tabs)/index.tsx create mode 100644 year4/semester1/fyp/iompar/app/+html.tsx create mode 100644 year4/semester1/fyp/iompar/app/+not-found.tsx create mode 100644 year4/semester1/fyp/iompar/app/_layout.tsx create mode 100755 year4/semester1/fyp/iompar/assets/fonts/SpaceMono-Regular.ttf create mode 100644 year4/semester1/fyp/iompar/assets/images/adaptive-icon.png create mode 100644 year4/semester1/fyp/iompar/assets/images/favicon.png create mode 100644 year4/semester1/fyp/iompar/assets/images/icon.png create mode 100644 year4/semester1/fyp/iompar/assets/images/partial-react-logo.png create mode 100644 year4/semester1/fyp/iompar/assets/images/react-logo.png create mode 100644 year4/semester1/fyp/iompar/assets/images/react-logo@2x.png create mode 100644 year4/semester1/fyp/iompar/assets/images/react-logo@3x.png create mode 100644 year4/semester1/fyp/iompar/assets/images/splash.png create mode 100644 year4/semester1/fyp/iompar/babel.config.js create mode 100644 year4/semester1/fyp/iompar/components/Collapsible.tsx create mode 100644 year4/semester1/fyp/iompar/components/ExternalLink.tsx create mode 100644 year4/semester1/fyp/iompar/components/HelloWave.tsx create mode 100644 year4/semester1/fyp/iompar/components/ParallaxScrollView.tsx create mode 100644 year4/semester1/fyp/iompar/components/ThemedText.tsx create mode 100644 year4/semester1/fyp/iompar/components/ThemedView.tsx create mode 100644 year4/semester1/fyp/iompar/components/__tests__/ThemedText-test.tsx create mode 100644 year4/semester1/fyp/iompar/components/__tests__/__snapshots__/ThemedText-test.tsx.snap create mode 100644 year4/semester1/fyp/iompar/components/navigation/TabBarIcon.tsx create mode 100644 year4/semester1/fyp/iompar/constants/Colors.ts create mode 100644 year4/semester1/fyp/iompar/hooks/useColorScheme.ts create mode 100644 year4/semester1/fyp/iompar/hooks/useColorScheme.web.ts create mode 100644 year4/semester1/fyp/iompar/hooks/useThemeColor.ts create mode 100644 year4/semester1/fyp/iompar/package-lock.json create mode 100644 year4/semester1/fyp/iompar/package.json create mode 100755 year4/semester1/fyp/iompar/scripts/reset-project.js create mode 100644 year4/semester1/fyp/iompar/tsconfig.json create mode 100644 year4/semester1/fyp/materials/CT413-FYP_Guidelines_2024_25.pdf create mode 100644 year4/semester1/fyp/materials/CT413_PDP_S001.pdf create mode 100644 year4/semester1/fyp/materials/CT413_PDP_S002.pdf create mode 100644 year4/semester1/fyp/materials/CT413_PDP_S003.pdf delete mode 100644 year4/semester1/fyp/notes delete mode 100644 year4/semester1/fyp/prefs diff --git a/year4/semester1/fyp/ideas b/year4/semester1/fyp/ideas deleted file mode 100644 index eef51322..00000000 --- a/year4/semester1/fyp/ideas +++ /dev/null @@ -1 +0,0 @@ -- ai ISL interpreter diff --git a/year4/semester1/fyp/iompar/.gitignore b/year4/semester1/fyp/iompar/.gitignore new file mode 100644 index 00000000..6623142a --- /dev/null +++ b/year4/semester1/fyp/iompar/.gitignore @@ -0,0 +1,20 @@ +node_modules/ +.expo/ +dist/ +npm-debug.* +*.jks +*.p8 +*.p12 +*.key +*.mobileprovision +*.orig.* +web-build/ + +# macOS +.DS_Store + +# @generated expo-cli sync-2b81b286409207a5da26e14c78851eb30d8ccbdb +# The following patterns were generated by expo-cli + +expo-env.d.ts +# @end expo-cli \ No newline at end of file diff --git a/year4/semester1/fyp/iompar/README.md b/year4/semester1/fyp/iompar/README.md new file mode 100644 index 00000000..cd4feb8a --- /dev/null +++ b/year4/semester1/fyp/iompar/README.md @@ -0,0 +1,50 @@ +# Welcome to your Expo app đź‘‹ + +This is an [Expo](https://expo.dev) project created with [`create-expo-app`](https://www.npmjs.com/package/create-expo-app). + +## Get started + +1. Install dependencies + + ```bash + npm install + ``` + +2. Start the app + + ```bash + npx expo start + ``` + +In the output, you'll find options to open the app in a + +- [development build](https://docs.expo.dev/develop/development-builds/introduction/) +- [Android emulator](https://docs.expo.dev/workflow/android-studio-emulator/) +- [iOS simulator](https://docs.expo.dev/workflow/ios-simulator/) +- [Expo Go](https://expo.dev/go), a limited sandbox for trying out app development with Expo + +You can start developing by editing the files inside the **app** directory. This project uses [file-based routing](https://docs.expo.dev/router/introduction). + +## Get a fresh project + +When you're ready, run: + +```bash +npm run reset-project +``` + +This command will move the starter code to the **app-example** directory and create a blank **app** directory where you can start developing. + +## Learn more + +To learn more about developing your project with Expo, look at the following resources: + +- [Expo documentation](https://docs.expo.dev/): Learn fundamentals, or go into advanced topics with our [guides](https://docs.expo.dev/guides). +- [Learn Expo tutorial](https://docs.expo.dev/tutorial/introduction/): Follow a step-by-step tutorial where you'll create a project that runs on Android, iOS, and the web. + +## Join the community + +Join our community of developers creating universal apps. + +- [Expo on GitHub](https://github.com/expo/expo): View our open source platform and contribute. +- [Discord community](https://chat.expo.dev): Chat with Expo users and ask questions. diff --git a/year4/semester1/fyp/iompar/app.json b/year4/semester1/fyp/iompar/app.json new file mode 100644 index 00000000..4a86c49e --- /dev/null +++ b/year4/semester1/fyp/iompar/app.json @@ -0,0 +1,36 @@ +{ + "expo": { + "name": "iompar", + "slug": "iompar", + "version": "1.0.0", + "orientation": "portrait", + "icon": "./assets/images/icon.png", + "scheme": "myapp", + "userInterfaceStyle": "automatic", + "splash": { + "image": "./assets/images/splash.png", + "resizeMode": "contain", + "backgroundColor": "#ffffff" + }, + "ios": { + "supportsTablet": true + }, + "android": { + "adaptiveIcon": { + "foregroundImage": "./assets/images/adaptive-icon.png", + "backgroundColor": "#ffffff" + } + }, + "web": { + "bundler": "metro", + "output": "static", + "favicon": "./assets/images/favicon.png" + }, + "plugins": [ + "expo-router" + ], + "experiments": { + "typedRoutes": true + } + } +} diff --git a/year4/semester1/fyp/iompar/app/(tabs)/_layout.tsx b/year4/semester1/fyp/iompar/app/(tabs)/_layout.tsx new file mode 100644 index 00000000..22a49b62 --- /dev/null +++ b/year4/semester1/fyp/iompar/app/(tabs)/_layout.tsx @@ -0,0 +1,37 @@ +import { Tabs } from 'expo-router'; +import React from 'react'; + +import { TabBarIcon } from '@/components/navigation/TabBarIcon'; +import { Colors } from '@/constants/Colors'; +import { useColorScheme } from '@/hooks/useColorScheme'; + +export default function TabLayout() { + const colorScheme = useColorScheme(); + + return ( + + ( + + ), + }} + /> + ( + + ), + }} + /> + + ); +} diff --git a/year4/semester1/fyp/iompar/app/(tabs)/explore.tsx b/year4/semester1/fyp/iompar/app/(tabs)/explore.tsx new file mode 100644 index 00000000..e480218a --- /dev/null +++ b/year4/semester1/fyp/iompar/app/(tabs)/explore.tsx @@ -0,0 +1,102 @@ +import Ionicons from '@expo/vector-icons/Ionicons'; +import { StyleSheet, Image, Platform } from 'react-native'; + +import { Collapsible } from '@/components/Collapsible'; +import { ExternalLink } from '@/components/ExternalLink'; +import ParallaxScrollView from '@/components/ParallaxScrollView'; +import { ThemedText } from '@/components/ThemedText'; +import { ThemedView } from '@/components/ThemedView'; + +export default function TabTwoScreen() { + return ( + }> + + Explore + + This app includes example code to help you get started. + + + This app has two screens:{' '} + app/(tabs)/index.tsx and{' '} + app/(tabs)/explore.tsx + + + The layout file in app/(tabs)/_layout.tsx{' '} + sets up the tab navigator. + + + Learn more + + + + + You can open this project on Android, iOS, and the web. To open the web version, press{' '} + w in the terminal running this project. + + + + + For static images, you can use the @2x and{' '} + @3x suffixes to provide files for + different screen densities + + + + Learn more + + + + + Open app/_layout.tsx to see how to load{' '} + + custom fonts such as this one. + + + + Learn more + + + + + This template has light and dark mode support. The{' '} + useColorScheme() hook lets you inspect + what the user's current color scheme is, and so you can adjust UI colors accordingly. + + + Learn more + + + + + This template includes an example of an animated component. The{' '} + components/HelloWave.tsx component uses + the powerful react-native-reanimated library + to create a waving hand animation. + + {Platform.select({ + ios: ( + + The components/ParallaxScrollView.tsx{' '} + component provides a parallax effect for the header image. + + ), + })} + + + ); +} + +const styles = StyleSheet.create({ + headerImage: { + color: '#808080', + bottom: -90, + left: -35, + position: 'absolute', + }, + titleContainer: { + flexDirection: 'row', + gap: 8, + }, +}); diff --git a/year4/semester1/fyp/iompar/app/(tabs)/index.tsx b/year4/semester1/fyp/iompar/app/(tabs)/index.tsx new file mode 100644 index 00000000..8d994d05 --- /dev/null +++ b/year4/semester1/fyp/iompar/app/(tabs)/index.tsx @@ -0,0 +1,103 @@ +import { Image, StyleSheet, Platform } from 'react-native'; + +import { HelloWave } from '@/components/HelloWave'; +import ParallaxScrollView from '@/components/ParallaxScrollView'; +import { ThemedText } from '@/components/ThemedText'; +import { ThemedView } from '@/components/ThemedView'; +import MapView, { Marker } from 'react-native-maps'; + +// export default function HomeScreen() { +// return ( +// +// }> +// +// Welcome! +// +// +// +// Step 1: Try it +// +// Edit app/(tabs)/index.tsx to see changes. +// Press{' '} +// +// {Platform.select({ ios: 'cmd + d', android: 'cmd + m' })} +// {' '} +// to open developer tools. +// +// +// +// Step 2: Explore +// +// Tap the Explore tab to learn more about what's included in this starter app. +// +// +// +// Step 3: Get a fresh start +// +// When you're ready, run{' '} +// npm run reset-project to get a fresh{' '} +// app directory. This will move the current{' '} +// app to{' '} +// app-example. +// +// +// +// ); +// } +// +// const styles = StyleSheet.create({ +// titleContainer: { +// flexDirection: 'row', +// alignItems: 'center', +// gap: 8, +// }, +// stepContainer: { +// gap: 8, +// marginBottom: 8, +// }, +// reactLogo: { +// height: 178, +// width: 290, +// bottom: 0, +// left: 0, +// position: 'absolute', +// }, +// }); + +export default function HomeScreen() { + const coordinates = { + latitude: 37.78825, + longitude: -122.4324, + }; + + return ( + + + + + + ); +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + }, + map: { + width: '100%', + height: '100%', + }, +}); diff --git a/year4/semester1/fyp/iompar/app/+html.tsx b/year4/semester1/fyp/iompar/app/+html.tsx new file mode 100644 index 00000000..8b924561 --- /dev/null +++ b/year4/semester1/fyp/iompar/app/+html.tsx @@ -0,0 +1,39 @@ +import { ScrollViewStyleReset } from 'expo-router/html'; +import { type PropsWithChildren } from 'react'; + +/** + * This file is web-only and used to configure the root HTML for every web page during static rendering. + * The contents of this function only run in Node.js environments and do not have access to the DOM or browser APIs. + */ +export default function Root({ children }: PropsWithChildren) { + return ( + + + + + + + {/* + Disable body scrolling on web. This makes ScrollView components work closer to how they do on native. + However, body scrolling is often nice to have for mobile web. If you want to enable it, remove this line. + */} + + + {/* Using raw CSS styles as an escape-hatch to ensure the background color never flickers in dark-mode. */} +