A personal inventory management app for DMC embroidery threads, built with React Native and Expo.
Perristock helps you keep track of your embroidery thread collection. Features include:
- ๐จ Complete DMC Thread Database - Browse all 500+ DMC thread colors
- ๐ฆ Stock Management - Track quantity and add notes for each thread
- ๐ Smart Search - Find threads by DMC number, name, or color
- ๐ Grid & List Views - Switch between layouts with a toggle, for tabs
- ๐จ Color Preview - See accurate thread colors at a glance
- Clone the repository:
git clone <your-repo-url>
cd perristock- Install dependencies:
npm install- Start the development server:
npm start- Run on your device:
- Android: Press
aor scan QR code with Expo Go - iOS: Press
ior scan QR code with Expo Go (iOS only) - Web: Press
w
- Android: Press
This app is designed for personal use and manual distribution (no Play Store required).
- Install EAS CLI globally:
npm install -g eas-cli- Login to your Expo account:
eas login- Configure the project (if not already done):
eas build:configure- Build the APK:
For a preview/test build:
eas build --platform android --profile previewFor a production build:
eas build --platform android --profile production- Download the APK:
Once the build completes, you'll receive a download link. You can also download it via:
eas build:list
eas build:download --platform android --latestIf you prefer to build locally without EAS:
-
Install Android Studio and configure environment
-
Prebuild the native project:
npx expo prebuild --platform android- Build with Gradle:
cd android
./gradlew assembleRelease- Find your APK at:
android/app/build/outputs/apk/release/app-release.apk
- Email/Messaging: Send the APK directly to users
- Cloud Storage: Upload to Google Drive, Dropbox, or similar
- Web Hosting: Host on your own server
Note: Users will need to enable "Install from Unknown Sources" in their Android settings.
Before building, update the package name in app.json:
{
"expo": {
"android": {
"package": "com.yourname.perristock"
}
}
}perristock/
โโโ app/
โ โโโ (tabs)/ # Main navigation tabs
โ โโโ hooks/ # Custom React hooks
โ โโโ services/ # Database and business logic
โโโ components/ # Reusable UI components
โโโ constants/ # Colors and theme configuration
โโโ assets/ # Images and static files
- Framework: Expo / React Native
- Database: Expo SQLite
- Navigation: Expo Router
- Language: TypeScript
- UI: React Native components with custom styling
dmc_threads: Reference table with all 500+ DMC threadsstock_threads: Your personal inventory linked to DMC reference
The app uses a warm, craft-inspired color scheme defined in constants/Colors.ts:
- Primary:
#734A1F(Brown) - Secondary:
#B8956A(Tan) - Accent:
#E6D5C3(Cream) - Error:
#C94D4D(Red)
Database file: perristock.db is stored locally on the device using Expo SQLite.
To export your database, you can add this utility in the database service:
import * as FileSystem from 'expo-file-system';
import * as Sharing from 'expo-sharing';
async exportDatabase() {
const dbPath = `${FileSystem.documentDirectory}SQLite/perristock.db`;
await Sharing.shareAsync(dbPath);
}This is a personal project for managing embroidery thread inventory. Feel free to fork and adapt for your own use.
This is a personal project, but suggestions and improvements are welcome! Feel free to open an issue or submit a pull request.
For questions or support, please open an issue on GitHub.
Made with ๐งต for embroidery enthusiasts