Home
Softono
AvoCook

AvoCook

Open source MIT TypeScript
18
Stars
1
Forks
5
Issues
1
Watchers
1 week
Last Commit

About AvoCook

Modern kitchen app (iOS & Android) that can be used locally or synchronized with Nextcloud Cookbook.

Platforms

Web Self-hosted Cloud iOS Android

Languages

TypeScript

Links

AvoCook

AvoCook is a mobile recipe app I'm building for personal use and to learn how to run a complete React Native project end to end.

The idea is simple: keep your recipes in one place, use them offline, and sync with Nextcloud Cookbook if you already have a server.

App Store · Android APK · APK downloads

AvoCook login Recipe detail

What the app can do

  • create and edit recipes locally;
  • organise recipes by category;
  • add photos;
  • import a recipe from a URL when the site exposes schema.org/Recipe data;
  • adjust quantities based on the number of servings;
  • start cooking timers;
  • export a recipe as PDF or print it;
  • back up / restore recipes to a JSON file;
  • sync with Nextcloud Cookbook, if the user wants to;
  • sync with the iOS Reminders app to leverage Apple's sharing features.

Local mode requires no account. Data stays on the device.

Development setup

The project uses Expo, React Native and TypeScript.

npm install
npm run start

Then open the app with Expo Go or a development build.

Useful commands:

npm run typecheck
npm test
npm run lint
npm run import:check -- <recipe-url>

Nextcloud Cookbook

To test synchronisation:

  1. Install the Cookbook app on a Nextcloud instance.
  2. Create an app password in the security settings.
  3. Enter the server URL, username, and that password in AvoCook.

The app rejects remote servers over HTTP. HTTP is accepted for localhost during development.

Android

APKs are published in the GitHub releases. The main file to install is avocook.apk.

Project structure

  • src/screens: application screens;
  • src/components: reusable components;
  • src/features/recipes: local storage, sync, and recipe logic;
  • src/features/nextcloud: HTTP client for Cookbook;
  • src/features/import: recipe import from web pages;
  • src/modules/avocook-timer-notifications: small native module for timer notifications.

Licence

This project is licenced under the GPLv3 licence.