Skip to content

Stevenma05/HackUSF2026

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HackUSF2026

CANVAMON

CANVAMON is a multi-surface productivity app that turns Canvas assignments into a virtual pet experience. It includes:

a browser extension a mobile app a backend server The project is designed to make schoolwork feel more interactive by connecting assignment progress to a pet’s mood, streaks, reminders, dashboard views, and even help with gemini.

Features

Canvas assignment sync Pet mood system based on assignment state Dashboard with assignment stats Weekly schedule view Pet selection and theme preferences Mobile intro video Local notification scheduling for assignment reminders Browser extension pet components with animated cat and dog companions

Project Structure

HackUSF2026/ ├── apps/ │ ├── extension/ # Browser extension UI │ └── mobile/ # Expo / React Native mobile app ├── server/ # Backend API and sync logic ├── package.json # Root workspace config └── package-lock.json

Tech Stack

Mobile

Expo React Native expo-blur expo-linear-gradient expo-notifications expo-video

Extension

React Vite TypeScript motion/react

Backend

Node.js Express dotenv cors node-cron

Workspace Setup

This repo uses npm workspaces.

Install dependencies

npm install

Running the Project

Run the mobile app

npm run dev:mobile

Run the browser extension

npm run dev:extension

Build the browser extension

npm run build:extension

Run the backend server

npm run dev:server

App Areas

Mobile App

Located in apps/mobile

Main files:

App.js src/DashboardScreen.js src/ScheduleScreen.js src/PreferencesScreen.js src/notifications.js src/PetAvatar.js

Mobile Features:

animated dashboard weekly assignment tracking pet preview and preferences local notifications for due assignments launch video before entering the app

Extension:

Located in apps/extension Important files: src/App.jsx src/components/CatPet.tsx src/components/DogPet.tsx Extension Features animated cat and dog pet UIs pet mood visualization web-based companion experience

Server

Located in server

Handles:

assignment data sync operations pet state generation API endpoints for app clients

Notifications

The mobile app currently uses local scheduled notifications through Expo.

Current behavior:

asks for notification permission schedules reminders for assignments due on the same day includes a test notification button in Preferences

Important notes:

local notifications are best tested on a real iPhone iOS simulator is not reliable for actual notification delivery remote push notifications would require backend token storage and server-side sending

Environment Variables

There is at least one local env file in the extension app: apps/extension/.env.local If the server or extension needs secrets, create the appropriate .env files based on your local setup.

Assets Mobile assets are stored in:

apps/mobile/assets/ This includes:

app icons splash assets landing video used on app startup Development Notes The repo may include both light and dark theme support The mobile dashboard uses a custom animated pet avatar The extension pet animations are separate from the native mobile pet implementation The mobile app and extension share the same product idea, but not the same rendering layer Testing Notes Mobile For notifications:

real-device testing is recommended Expo Go has limitations development builds are better for full native behavior testing Extension Use the Vite dev server during development and build before loading a production bundle.

Future Improvements remote push notifications from the backend persistent user accounts configurable reminder times stronger Canvas integration shared pet logic between extension and mobile onboarding flow and auth Scripts Root scripts from package.json:

npm run dev:server npm run dev:extension npm run build:extension npm run dev:mobile License Add your preferred license here.

Authors Add team member names here.

Demo / Submission Notes This project was built as part of HackUSF and focuses on turning assignment management into a more playful and motivating experience through a virtual pet system.

If you want, I can also turn this into a more polished hackathon-style README with:

badges screenshots section demo section installation steps per app contribution section

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors