diff --git a/backend/package.json b/backend/package.json new file mode 100644 index 0000000..3b34dc7 --- /dev/null +++ b/backend/package.json @@ -0,0 +1,16 @@ +{ + "name": "backend", + "version": "1.0.0", + "type": "module", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "express": "^5.1.0" + } +} diff --git a/backend/src/index.ts b/backend/src/index.ts index 996ba53..fb984a9 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -9,6 +9,42 @@ app.get("/", (req, res) => { res.send("Hello from Express!"); }); +app.post("/api/signup", (req, res) => { + res.json({ message: "User signed up successfully" }); +}); + +app.post("/api/signin", (req, res) => { + res.json({ message: "Logged in" }); +}); + +app.get("/api/profile", (req, res) => { + res.json({ message: "User details fetched" }); +}); + +app.post("/api/mood", (req, res) => { + res.json({ message: "Mood recorded" }); +}); + +app.get("/api/calendar", (req, res) => { + res.json({ message: "Calendar data retrieved" }); +}); + +app.get("/api/conversations", (req, res) => { + res.json({ message: "Conversations fetched" }); +}); + +app.get("/api/insights", (req, res) => { + res.json({ message: "Insights generated" }); +}); + +app.get("/api/notifications", (req, res) => { + res.json({ message: "Notifications retrieved" }); +}); + +app.get("/api/badges_streaks", (req, res) => { + res.json({ message: "Badges and streaks updated" }); +}); + app.listen(port, () => { console.log(`Server running at http://localhost:${port}`); }); diff --git a/frontend/About.tsx b/frontend/About.tsx new file mode 100644 index 0000000..cf7551b --- /dev/null +++ b/frontend/About.tsx @@ -0,0 +1,10 @@ +import React from 'react'; +import { View, Text } from 'react-native'; + +export default function About(){ + return ( + + This is About Page + + ); +} \ No newline at end of file diff --git a/frontend/App.tsx b/frontend/App.tsx index 0329d0c..0fa18d4 100644 --- a/frontend/App.tsx +++ b/frontend/App.tsx @@ -1,11 +1,40 @@ import { StatusBar } from 'expo-status-bar'; import { StyleSheet, Text, View } from 'react-native'; +import { NavigationContainer } from '@react-navigation/native'; +import { createNativeStackNavigator } from '@react-navigation/native-stack'; +import BadgesStreaks from './src/BadgesStreaks'; +import CalendarInput from './src/CalendarInput'; +import Conversations from './src/Conversations'; +import Insights from './src/Insights'; +import MoodInput from './src/MoodInput'; +import Notifications from './src/Notifications'; +import Profile from './src/Profile'; +import SignIn from './src/SignIn'; +import SignUp from './src/SignUp'; +import About from './src/routes' +import Home from './src/routes' +const Stack = createNativeStackNavigator(); export default function App() { return ( Open up App.tsx to start working on your app! + + + + + + + + + + + + + + + ); } diff --git a/frontend/src/BadgesStreaks.tsx b/frontend/src/BadgesStreaks.tsx new file mode 100644 index 0000000..7b7bb0d --- /dev/null +++ b/frontend/src/BadgesStreaks.tsx @@ -0,0 +1,12 @@ +import React from 'react'; +import { View, Text } from 'react-native'; + +export default function BadgesStreaks(){ + return ( + + Badges & Streaks + Streak: 5 days + Badge: Consistent + + ); +} \ No newline at end of file diff --git a/frontend/src/CalendarInput.tsx b/frontend/src/CalendarInput.tsx new file mode 100644 index 0000000..0456c2e --- /dev/null +++ b/frontend/src/CalendarInput.tsx @@ -0,0 +1,10 @@ +import React from 'react'; +import { View, Text } from 'react-native'; + +export default function CalendarInput(){ + return ( + + Calender Page + + ); +} \ No newline at end of file diff --git a/frontend/src/Conversations.tsx b/frontend/src/Conversations.tsx new file mode 100644 index 0000000..9913488 --- /dev/null +++ b/frontend/src/Conversations.tsx @@ -0,0 +1,10 @@ +import React from 'react'; +import { View, Text } from 'react-native'; + +export default function Conversations(){ + return ( + + Conversations + + ); +} \ No newline at end of file diff --git a/frontend/src/Home.tsx b/frontend/src/Home.tsx new file mode 100644 index 0000000..64876a5 --- /dev/null +++ b/frontend/src/Home.tsx @@ -0,0 +1,10 @@ +import React from 'react'; +import { View, Text } from 'react-native'; + +export default function Home(){ + return ( + + Home Page + + ); +} \ No newline at end of file diff --git a/frontend/src/Insights.tsx b/frontend/src/Insights.tsx new file mode 100644 index 0000000..4a7487c --- /dev/null +++ b/frontend/src/Insights.tsx @@ -0,0 +1,13 @@ +import React from 'react'; +import { View, Text } from 'react-native'; + +export default function Insights(){ + return ( + + Insights + Days active: 12 + Mood logs: 8 + Top mood: Happy + + ); +} \ No newline at end of file diff --git a/frontend/src/MoodInput.tsx b/frontend/src/MoodInput.tsx new file mode 100644 index 0000000..37e5be9 --- /dev/null +++ b/frontend/src/MoodInput.tsx @@ -0,0 +1,10 @@ +import React from 'react'; +import { View, Text } from 'react-native'; + +export default function MoodInput(){ + return( + + Mood Input Page + + ); +} \ No newline at end of file diff --git a/frontend/src/Notifications.tsx b/frontend/src/Notifications.tsx new file mode 100644 index 0000000..0e46bf1 --- /dev/null +++ b/frontend/src/Notifications.tsx @@ -0,0 +1,10 @@ +import React from 'react'; +import { View, Text } from 'react-native'; + +export default function Notifications(){ + return ( + + Notif Page + + ); +} \ No newline at end of file diff --git a/frontend/src/Profile.tsx b/frontend/src/Profile.tsx new file mode 100644 index 0000000..8a23a15 --- /dev/null +++ b/frontend/src/Profile.tsx @@ -0,0 +1,10 @@ +import React from 'react'; +import { View, Text } from 'react-native'; + +export default function Profile(){ + return ( + + Profile Page + + ); +} \ No newline at end of file diff --git a/frontend/src/SignIn.tsx b/frontend/src/SignIn.tsx new file mode 100644 index 0000000..2891075 --- /dev/null +++ b/frontend/src/SignIn.tsx @@ -0,0 +1,10 @@ +import React from 'react'; +import { View, Text } from 'react-native'; + +export default function SignIn(){ + return ( + + Sign In Page + + ); +} \ No newline at end of file diff --git a/frontend/src/SignUp.tsx b/frontend/src/SignUp.tsx new file mode 100644 index 0000000..3139748 --- /dev/null +++ b/frontend/src/SignUp.tsx @@ -0,0 +1,10 @@ +import React from 'react'; +import { View, Text } from 'react-native'; + +export default function SignUp(){ + return ( + + Sign Up Page + + ); +} \ No newline at end of file diff --git a/frontend/src/routes.tsx b/frontend/src/routes.tsx index eedba86..f3df2ef 100644 --- a/frontend/src/routes.tsx +++ b/frontend/src/routes.tsx @@ -1,6 +1,15 @@ import React from 'react'; import { Text } from 'react-native'; import { BrowserRouter as Router, Route, Routes } from 'react-router-dom'; +import BadgesStreaks from './BadgesStreaks'; +import CalendarInput from './CalendarInput'; +import Conversations from './Conversations'; +import Insights from './Insights'; +import MoodInput from './MoodInput'; +import Notifications from './Notifications'; +import Profile from './Profile'; +import SignIn from './SignIn'; +import SignUp from './SignUp'; const Home = () => (
@@ -19,7 +28,18 @@ const AppRoutes = () => { } /> + } /> } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + ); diff --git a/package.json b/package.json index f258ab4..56e6987 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "backend", "version": "1.0.0", - "description": "", + "description": "**A safe and supportive space for mental wellness.** \r Built for students, by students, this app combines the power of technology with compassion to help users manage their mental health, track progress, and connect anonymously.", "main": "./frontend/index.ts", "scripts": { "dev:backend": "tsx watch backend/src/index.ts", @@ -18,29 +18,33 @@ "dependencies": { "@expo/webpack-config": "^19.0.1", "@prisma/client": "^5.22.0", + "@react-native-picker/picker": "^2.11.0", + "@react-navigation/native": "^7.0.14", + "@react-navigation/native-stack": "^7.2.0", "axios": "^1.7.7", - "expo": "~52.0.11", - "expo-status-bar": "~2.0.0", + "expo": "^53.0.7", + "expo-constants": "~17.1.5", + "expo-linking": "~7.1.4", + "expo-router": "~5.0.5", + "expo-status-bar": "~2.2.3", "express": "^4.21.1", - "react": "18.3.1", - "react-dom": "^18.3.1", - "react-native": "0.76.3", - "react-native-web": "^0.19.13", + "react": "19.0.0", + "react-dom": "19.0.0", + "react-native": "0.79.2", + "react-native-calendars": "^1.1310.0", + "react-native-safe-area-context": "5.4.0", + "react-native-screens": "~4.10.0", + "react-native-web": "^0.20.0", "react-router-dom": "^7.0.1", - "tsx": "^4.19.2", - "expo-router": "~4.0.9", - "react-native-safe-area-context": "4.12.0", - "react-native-screens": "~4.1.0", - "expo-linking": "~7.0.3", - "expo-constants": "~17.0.3" + "tsx": "^4.19.2" }, "devDependencies": { "@babel/core": "^7.25.2", "@types/express": "^5.0.0", "@types/node": "^22.9.3", - "@types/react": "~18.3.12", + "@types/react": "~19.0.10", "prisma": "^5.22.0", "ts-node": "^10.9.2", - "typescript": "^5.7.2" + "typescript": "~5.8.3" } }