1.0.0 • Published 7 months ago

my-remixjs v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

🚀 RemixJS Framework

Un framework Node.js élégant combinant les meilleures fonctionnalités de Spring Boot et Symfony.

✨ Caractéristiques

  • DĂ©corateurs TypeScript pour une configuration dĂ©clarative
  • Routage automatique basĂ© sur les annotations
  • ORM intĂ©grĂ© avec Sequelize
  • Gestion des rĂ©ponses standardisĂ©e
  • Architecture modulaire inspirĂ©e des frameworks d'entreprise

🚀 Démarrage rapide

Installation

npm install remix

Exemple basique

const { Controller, Get, createServer } = require('remixjs');

@Controller('/api/users')
class UserController {
    @Get('/')
    async getUsers(req, res) {
        res.json({ message: 'Liste des utilisateurs' });
    }
}

Définition d'un modèle

const { Table, Column } = require('./framework/orm/decorators');
const { DataTypes, Model } = require('sequelize');

@Table({ tableName: 'users' })
class User extends Model {
    @Column(DataTypes.STRING)
    name;

    @Column(DataTypes.INTEGER)
    age;
}

đź›  Configuration

Configuration du serveur

// .env
PORT=3000
AUTO_LOAD_ROUTES=true

📚 Documentation

Décorateurs disponibles

ContrĂ´leurs

  • @Controller(prefix) - DĂ©finit un prĂ©fixe pour toutes les routes du contrĂ´leur
  • @Get(path)
  • @Post(path)
  • @Put(path)
  • @Delete(path)

Modèles

  • @Table(options)
  • @Column(type, options)

Repositories

Le framework fournit deux types de repositories :

  • GenericRepository - Pour les opĂ©rations CRUD basiques
  • GeneralRepository - Pour les requĂŞtes personnalisĂ©es et complexes
const repository = new GenericRepository(UserModel);
const users = await repository.findAll();

🔧 Structure du projet recommandée

project/
├── src/
│   ├── controllers/
│   ├── models/
│   └── config/
├── framework/
│   ├── orm/
│   ├── routes/
│   └── request/
└── server.js

🤝 Contribution

Les contributions sont les bienvenues ! N'hésitez pas à :

  1. Fork le projet
  2. Créer une branche (git checkout -b feature/AmazingFeature)
  3. Commit vos changements (git commit -m 'Add some AmazingFeature')
  4. Push sur la branche (git push origin feature/AmazingFeature)
  5. Ouvrir une Pull Request

📝 License

Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.

🙏 Remerciements :

Hoseia Rabemanantsoa

Inspiré par les meilleures pratiques de :

  • Spring Boot
  • Symfony
  • Express.js
  • Sequelize