Мобильное приложение для коллекционеров монет Российской Империи (1682-1917). Каталог монет, управление личной коллекцией, статистика и аналитика.
- ✅ Полный каталог монет Российской Империи от Петра I до Николая II
- ✅ Управление коллекцией - добавляйте монеты, отслеживайте покупки
- ✅ Вишлист - список желаемых монет
- ✅ Статистика - анализ коллекции, прибыль/убыток
- ✅ Работа с датами - отслеживание времени в коллекции
- ✅ Поиск и фильтрация - быстрый поиск по каталогу
- ✅ Группировка по номиналам - золото, серебро, медь
- ✅ Кроссплатформенность - iOS, Android, Web
Проект использует современную классовую архитектуру:
Country (Страна)
└── Period (Период: Империя)
└── Ruler (Правитель)
└── Coin (Монета)
User
└── UserCollection
└── UserCoin (Монета в коллекции)
Технологии:
- React Native + Expo
- SQLite (мобильные устройства)
- localStorage (веб)
- Классовая архитектура данных
- Готовность к синхронизации с сервером
Вся необходимая документация находится в этом файле.
npm installФайл .env создан для будущего использования с API сервером. Сейчас приложение работает полностью локально и не требует настройки.
# Запуск на iOS
npm run ios
# Запуск на Android
npm run android
# Запуск в веб
npm run webimport { databaseService } from './services';
// Получить всех правителей
const rulers = await databaseService.getRulers();
// Получить монеты правителя
const coins = await databaseService.getCoinsByRuler('peter1');
// Поиск монет
const results = await databaseService.searchCoins('рубль 1725');import { userCollectionService } from './services';
// Добавить монету в коллекцию
await userCollectionService.addCoin('coin_id', {
purchasePrice: 15000,
purchaseDate: new Date('2024-01-15'),
condition: 'VF',
notes: 'Куплена на аукционе'
});
// Получить коллекцию
const collection = await userCollectionService.getUserCoins(false);
// Статистика
const stats = await userCollectionService.getCollectionStats();
console.log('Монет:', stats.collectionCount);
console.log('Стоимость:', stats.totalValue);
console.log('Прибыль:', stats.profitLoss);// Все даты автоматически преобразуются в Date объекты
const userCoin = collection[0];
console.log('Дней в коллекции:', userCoin.getDaysInCollection());
console.log('Месяцев:', userCoin.getMonthsInCollection());
console.log('Год покупки:', userCoin.getPurchaseYear());
console.log('Прибыль:', userCoin.getProfitLoss());coin_catalog/
├── models/ # Модели данных (Country, Period, Ruler, Coin, UserCoin)
├── services/ # Сервисы (DatabaseService, UserCollectionService)
├── data/ # Каталог монет
├── app/ # React Native компоненты
│ ├── (tabs)/ # Главные вкладки
│ ├── auth/ # Авторизация
│ ├── coin/ # Детали монеты
│ ├── ruler/ # Детали правителя
│ └── denomination/ # Группы номиналов
├── stores/ # Mobx stores
└── assets/ # Изображения и ресурсы
ruler.getReignYears() // "1682-1725"
ruler.getReignDuration() // 43
ruler.getAgeAtStart() // 10coin.getEstimatedValue() // Средняя стоимость
coin.isRare() // Редкая монета?
coin.getMetalType() // "gold", "silver", "copper"
coin.getAge() // Возраст монетыuserCoin.getDaysInCollection() // Дней в коллекции
userCoin.getCurrentValue() // Текущая стоимость
userCoin.getProfitLoss() // Прибыль/убыток
userCoin.getProfitLossPercent() // Процент прибылиКоллекция пользователя готова к синхронизации с сервером:
- Автоматическое отслеживание изменений (
needsSyncфлаг) - Мягкое удаление (
isDeletedфлаг) - Метки времени синхронизации
Каталог включает:
- Правителей: от Петра I (1682) до Николая II (1917)
- Монеты: золотые, серебряные, медные
- Детали: год, номинал, металл, вес, диаметр, тираж, редкость, стоимость
- Изображения: аверс и реверс монет
- Frontend: React Native, Expo
- База данных: SQLite (мобильные), localStorage (веб)
- Навигация: Expo Router
- Состояние: MobX
- Стиль: React Native StyleSheet
(Добавьте скриншоты приложения)
Приветствуются любые улучшения:
- Fork репозитория
- Создайте ветку (
git checkout -b feature/amazing-feature) - Commit изменения (
git commit -m 'Add amazing feature') - Push в ветку (
git push origin feature/amazing-feature) - Откройте Pull Request
MIT License
Jony251
- Данные каталога собраны из открытых источников
- Изображения монет из Wikimedia Commons