RikiLaNeko/Shopitoon
Gamified task manager: earn points for tasks, trade for custom rewards. Boost your motivation!
🇫🇷 Français
Shopitoon
Shopitoon est une application web qui aide les utilisateurs à gérer leurs tâches quotidiennes tout en les récompensant avec des points qu'ils peuvent échanger dans une boutique virtuelle.
Fonctionnalités principales
Gestion de compte
- Inscription et connexion utilisateur
- Personnalisation du profil (nom d'utilisateur, avatar)
- Gestion du mot de passe
- Suppression de compte
Gestion des tâches
- Création et gestion de tâches
- Tâches récurrentes
- Suivi de l'historique des tâches
- Système de points pour récompenser l'accomplissement des tâches
Calendrier
- Visualisation des tâches dans un calendrier mensuel
- Navigation facile entre les mois
Boutique
- Échange de points contre des récompenses virtuelles
- Ajout, modification et suppression d'articles (pour les administrateurs)
Technologies utilisées
- Frontend: SvelteKit 5, TailwindCSS 4
- Backend: SvelteKit (server-side)
- Base de données: LibSQL/Turso avec Drizzle ORM
- Authentification: Système d'authentification personnalisé
Installation et démarrage
Prérequis
- Node.js (version 18 ou supérieure)
- npm ou Bun
Installation
-
Clonez ce dépôt
git clone https://github.com/RikiLaNeko/Shopitoon.git cd Shopitoon -
Installez les dépendances et lancez l'application :
Instructions avec npm
npm install
npm run db:push
npm run devInstructions avec Bun
bun install
bun run db:push
bun run dev- Pour construire l'application pour la production :
npm
npm run buildBun
bun run buildStructure du projet
helpingplatform/
├── src/
│ ├── lib/
│ │ ├── components/ # Composants réutilisables
│ │ ├── server/
│ │ │ └── db/ # Configuration de la base de données et schémas
│ │ └── stores/ # Stores Svelte
│ └── routes/ # Routes de l'application
│ ├── auth/ # Authentification (connexion, inscription, déconnexion)
│ ├── calendar/ # Calendrier des tâches
│ ├── profile/ # Gestion du profil utilisateur
│ └── shop/ # Boutique virtuelle
├── static/
│ └── avatars/ # Images d'avatar uploadées
└── package.json
Fonctionnalités de l'API
Gestion d'utilisateur
POST /auth/register- Inscription d'un nouvel utilisateurPOST /auth/login- Connexion utilisateurPOST /auth/logout- Déconnexion utilisateurPOST /profile?/updateUsername- Mise à jour du nom d'utilisateurPOST /profile?/updatePassword- Mise à jour du mot de passePOST /profile?/updateAvatar- Mise à jour de l'avatarPOST /profile?/deleteAccount- Suppression du compte
Gestion de la boutique
POST /shop?/buy- Achat d'un articlePOST /shop?/delete- Suppression d'un articlePOST /shop/add?/add- Ajout d'un articlePOST /shop/edit/[id]?/edit- Modification d'un articlePOST /shop/edit/[id]?/delete- Suppression d'un article
Contribution
Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une issue ou à soumettre une pull request.
Licence
Ce projet est sous licence MIT.
🇬🇧 English
Shopitoon
Shopitoon is a web application that helps users manage their daily tasks while rewarding them with points they can exchange in a virtual shop.
Main Features
Account Management
- User registration and login
- Profile customization (username, avatar)
- Password management
- Account deletion
Task Management
- Create and manage tasks
- Recurring tasks
- Task history tracking
- Points system to reward task completion
Calendar
- View tasks in a monthly calendar
- Easy navigation between months
Shop
- Exchange points for virtual rewards
- Add, edit, and delete items (for admins)
Technologies Used
- Frontend: SvelteKit 5, TailwindCSS 4
- Backend: SvelteKit (server-side)
- Database: LibSQL/Turso with Drizzle ORM
- Authentication: Custom authentication system
Installation & Start
Prerequisites
- Node.js (version 18 or higher)
- npm or Bun
Installation
-
Clone this repository
git clone https://github.com/RikiLaNeko/Shopitoon.git cd Shopitoon -
Install dependencies and start the app:
Instructions with npm
npm install
npm run db:push
npm run devInstructions with Bun
bun install
bun run db:push
bun run dev- To build the app for production:
npm
npm run buildBun
bun run buildProject Structure
helpingplatform/
├── src/
│ ├── lib/
│ │ ├── components/ # Reusable components
│ │ ├── server/
│ │ │ └── db/ # Database config and schemas
│ │ └── stores/ # Svelte stores
│ └── routes/ # App routes
│ ├── auth/ # Authentication (login, register, logout)
│ ├── calendar/ # Task calendar
│ ├── profile/ # User profile management
│ └── shop/ # Virtual shop
├── static/
│ └── avatars/ # Uploaded avatar images
└── package.json
API Features
User Management
POST /auth/register- Register a new userPOST /auth/login- User loginPOST /auth/logout- User logoutPOST /profile?/updateUsername- Update usernamePOST /profile?/updatePassword- Update passwordPOST /profile?/updateAvatar- Update avatarPOST /profile?/deleteAccount- Delete account
Shop Management
POST /shop?/buy- Buy an itemPOST /shop?/delete- Delete an itemPOST /shop/add?/add- Add an itemPOST /shop/edit/[id]?/edit- Edit an itemPOST /shop/edit/[id]?/delete- Delete an item
Contributing
Contributions are welcome! Feel free to open an issue or submit a pull request.
License
This project is licensed under the MIT license.