This is GoNow!, a mobile planner and calendar app for students and busy schedulers. The app uses Node.js for backend development, React Native for mobile platforms, and SQLite as storage. The main task is events planning taking into account travel time and local conditions.
The project follows a modular structure to keep the codebase clean and maintainable:
/GoNOW
│── /__mocks__ # Mock implementations of modules
│── /__tests__ # Unit and integration tests
│── /app
│ │── /components # Reusable UI components (e.g., AddressPicker, ButtonSave)
│ │── /models # Model classes used in the application
│ │── /screens # App screens (Calendar, Map, Tasks, Profile, Workflow, etc.)
│ │── /scripts # Class and methods for working with storage (SQLite)
│ │── /styles # Style files for application components
│ |── __layout.tsx # Global layout for the app
│ |── index.tsx # Entry point of the application
│── /assets # Static assets (icons, images, etc.)
│── /node_modules # Dependencies (libraries, packages) required for project
│── .gitignore # Git file with list of files and directories to ignore in version control
│── .env # Environment variables in a key-value format (everyone creates for themselves)
│── app.json # Main configuration file
│── eslint.config.mjs # ESLint configuration file for static code analysis
│── package.json # Project file with configuration and Dependencies
│── README.md # Project documentation
│── tsconfig.json # TypeScript configuration file
│── typedoc.json # Configuration file for TypeDoc
Link: TS Doc
Mobile application expects environment variables:
EXPO_PUBLIC_APP_HOST=https://<backend host>EXPO_PUBLIC_ACCESS_TOKEN=<access token for backend>
You can add them on .env file.
- Node.js 22.13.1 or higher
- NPM 10.9.2 or higher
Check Node.js and NPM:
node -v; # shold print ver
npm -v; # shold print vercd <YOUR_SOLUTIONS_FOLDER>;
# clone the repo
git clone https://github.com/WalterChen352/cs130;
# go to solution folder
cd cs130;Go to project folder:
cd GoNOW;Install dependencies from packege.json
npm install;Build Mobile app start the Expo server:
npx expo start;- Installed Expo Go ( Apple Store, Google Play)
- Your smartphone must be connected to the same network as the Expo server.
- Open Expo Go app on your smartphone and use
Scan QR codeoption to conect to Expo server and open the Mobile app.
Run jest (unit) tests:
npm test;Run static code analysis tests:
npm run lint;