Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Shelfie #28

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions submissions/shelfie/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
Name: Shelfie

Description: Shelfie is a book management app that helps you keep track of what you’ve read and what you want to read. You can log books into your personal library, receive book recommendations, and share your reviews on the explore page for everyone to see.

GitHub URL: https://github.com/mikidoodle/shelfie

How did you build this: I used React Native with Expo. Didn't use any tutorials because it's fairly simple and I've had experience with it before, but I used the Expo website to get instructions on building the project to publish it.

How many hours did you spend on this: 35 hours

Did you use #arcade to log your progress?: Yes

Testflight link: https://testflight.apple.com/join/cmfmEKkt

How many users on testflight?: 5

Ship URL: https://hackclub.slack.com/archives/C0M8PUPU6/p1723877576867399

Video Demo URL: https://drive.google.com/file/d/1UtNvcda5fz7rnR7MkDFs7U3N-lE0vmDq/view?usp=sharing
42 changes: 42 additions & 0 deletions submissions/shelfie/app.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{
"expo": {
"name": "Shelfie",
"slug": "shelfie",
"version": "2.5.0",
"orientation": "portrait",
"icon": "./assets/images/icon.png",
"scheme": "shelfie",
"userInterfaceStyle": "automatic",
"splash": {
"image": "./assets/images/splash.png",
"resizeMode": "contain",
"backgroundColor": "#ffffff"
},
"ios": {
"supportsTablet": true,
"bundleIdentifier": "com.pidgon.shelfie",
"config": {
"usesNonExemptEncryption": false
}
},
"web": {
"bundler": "metro",
"output": "static"
},
"plugins": [
"expo-router",
"expo-secure-store"
],
"experiments": {
"typedRoutes": true
},
"extra": {
"router": {
"origin": false
},
"eas": {
"projectId": "37c716d5-b13f-473d-96ec-47c67b941488"
}
}
}
}
40 changes: 40 additions & 0 deletions submissions/shelfie/app/_layout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import { Stack } from "expo-router";
import { Alert } from 'react-native';
export default function RootLayout() {
return (
<Stack
screenOptions={{
headerShown: false,
contentStyle: {
backgroundColor: "#fff",
},
}}
>
<Stack.Screen
name="review"
options={{
presentation: "modal"
}}
/>
<Stack.Screen
name="profile"
options={{
presentation: "modal"
}}
/>
<Stack.Screen
name="firstinstall"
options={{
presentation: "modal",
gestureEnabled: false
}}
/>
<Stack.Screen name="index" />
<Stack.Screen name="login" />
<Stack.Screen name="signup" />
<Stack.Screen name="home/index" options={{
animation: "fade"
}}/>
</Stack>
);
}
114 changes: 114 additions & 0 deletions submissions/shelfie/app/firstinstall.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
import {
ScrollView,
TextInput,
View,
Image,
Pressable,
Text,
Alert,
} from "react-native";
import styles from "@/assets/styles/style";
import Octicons from '@expo/vector-icons/Octicons';
import AsyncStorage from "@react-native-async-storage/async-storage";
import { router } from "expo-router";
export default function FirstInstall() {
async function closeFirstInstall() {
AsyncStorage.setItem("firstinstall", "false").then(() => {
router.replace("/login");
});
}
return (
<View
style={{
padding: 10,
paddingTop: 50,
alignItems: "center",
}}
>
<Text style={{ fontSize: 20 }}>welcome to</Text>
<Text style={{ fontSize: 42, fontWeight: "bold", color: "#37B7C3" }}>
shelfie!
</Text>
<View
style={{
flexDirection: "column",
gap: 50,
margin: 50,
alignItems: "center",
}}
>
<View
style={{
flexDirection: "row",
gap: 20,
}}
>
<Text style={{ fontSize: 48 }}>🔭</Text>
<Text
style={{
fontWeight: 300,
fontSize: 16,
}}
>
Search for books, write reviews, and share them on the explore page.
Connect with readers and discover new favorites.
</Text>
</View>
<View
style={{
flexDirection: "row",
gap: 20,
}}
>
<Text style={{ fontSize: 48 }}>❤️</Text>
<Text
style={{
fontWeight: 300,
fontSize: 16,
}}
>
Discover 15 new books daily, tailored to your taste. Swipe right to
like, left to pass. The app learns from your choices!
</Text>
</View>
<View
style={{
flexDirection: "row",
gap: 20,
}}
>
<Text style={{ fontSize: 48 }}>📚</Text>
<Text
style={{
fontWeight: 300,
fontSize: 16,
}}
>
Track books you want to read or have finished. Build a streak and
share it with friends! Your library data is stored locally.{" "}
</Text>
</View>
</View>
<Pressable
style={{
width: "80%",
backgroundColor: "#37B7C3",
margin: "auto",
alignItems: "center",
padding: 10,
borderRadius: 9,
}}
onPress={closeFirstInstall}
>
<Text
style={{
fontSize: 24,
color: "white",
}}
>
Get started!
</Text>
</Pressable>
</View>
);
}
Loading