An open API service indexing awesome lists of open source software.

https://github.com/RLAlpha49/KenmeiToAnilist

Effortlessly migrate and synchronize your manga library from Kenmei to AniList with a beautiful, modern desktop app.
https://github.com/RLAlpha49/KenmeiToAnilist

anilist anilist-api anilist-python anilistapi electron gui kenmei manga react sync synchronization typescript

Last synced: 5 months ago
JSON representation

Effortlessly migrate and synchronize your manga library from Kenmei to AniList with a beautiful, modern desktop app.

Awesome Lists containing this project

README

          


App Icon

# Kenmei to Anilist

> Effortlessly migrate and synchronize your manga library from Kenmei to AniList with a beautiful, modern desktop app. ๐Ÿš€

---

## ๐Ÿ“ธ Screenshots

- **Home Page**
![Home Page Screenshot](./demo/home-page.png)
- **Import Kenmei CSV**
![Import Screenshot](./demo/import-page.png)
- **Smart Matching**
![Matching Screenshot](./demo/review-page.png)
- **Sync to AniList**
![Sync Screenshot](./demo/sync-page.png)
- **Settings**
![Settings Screenshot](./demo/settings-page.png)

---

## โœจ Features

- **Import from Kenmei**: Easily import your entire manga collection from a Kenmei CSV export.
- **Smart Matching**: An algorithm matches your manga to AniList entries.
- **One-Click Sync**: Synchronize your collection to AniList with a single click after reviewing matches.
- **Auto-Pause Manga**: Automatically pause manga that haven't been updated within a customizable time period.
- **Flexible Configuration**: Customize how synchronization works with priority settings for status, progress, and scores.
- **Modern UI/UX**: Built with React, TailwindCSS, and Radix UI for a beautiful, accessible experience.

---

## ๐Ÿ› ๏ธ How It Works

1. **Import**: Export your manga library from Kenmei as a CSV and import it into the app.
2. **Match**: The app automatically matches your manga to AniList entries. Review and adjust matches as needed.
3. **Review**: See a summary of your collection and any issues before syncing.
4. **Sync**: With one click, sync your collection to AniList, including status, progress, and privacy settings.

---

## ๐Ÿš€ Getting Started

### Prerequisites

- [Node.js](https://nodejs.org/) (v18+ recommended)
- [npm](https://www.npmjs.com/) or [yarn](https://yarnpkg.com/)

### Installation

```bash
# Clone the repository
git clone https://github.com/RLAlpha49/KenmeiToAnilist.git
cd KenmeiToAnilist

# Install dependencies
npm install --force
# or
yarn install
```

### Running the App (Development)

```bash
npm start
# or
yarn start
```

### Building for Production

```bash
npm run make
# or
yarn make
```

### Environment Variables

Create a `.env` file in the root if you want to override AniList credentials:

```env
VITE_ANILIST_CLIENT_ID=your-client-id
VITE_ANILIST_CLIENT_SECRET=your-client-secret
```

> Default values are set in `src/config/anilist.ts`. You can also configure credentials in the app's Settings page.

---

## ๐Ÿ“ฆ Usage

1. **Export from Kenmei**: In Kenmei, export your manga library as a CSV file.
2. **Import in App**: Drag and drop or select your CSV file in the Import page.
3. **Review & Match**: The app will auto-match your manga. Review and adjust any mismatches.
4. **Sync to AniList**: Click sync to update your AniList library.
5. **Configure Settings**: Adjust sync options, privacy, and credentials in the Settings page.

---

## ๐Ÿ—๏ธ Tech Stack

- **Electron** โ€“ Desktop app framework
- **React** โ€“ UI library
- **TypeScript** โ€“ Type safety
- **TailwindCSS** โ€“ Utility-first CSS
- **Radix UI** โ€“ Accessible UI primitives
- **Vite** โ€“ Fast build tool
- **Vitest** โ€“ Unit testing
- **Playwright** โ€“ End-to-end testing

---

## ๐Ÿงช Testing

- **Unit Tests**: `npm run test:unit` or `yarn test:unit`
- **E2E Tests**: `npm run test:e2e` or `yarn test:e2e`
- **All Tests**: `npm run test:all` or `yarn test:all`
- **Coverage**: `npm run test:coverage`

---

## ๐Ÿค Contributing

Contributions are welcome! Please:

- Fork the repo and create your branch
- Follow the code style
- Open a pull request with a clear description
- For major changes, open an issue first to discuss

---

## ๐Ÿ“„ License

This project is licensed under the MIT License. See [LICENSE](./LICENSE) for details.