Skip to content

ovoc01/Anemoi-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Anemoi-project

Why I create Anemoi ?

The Anemoi Framework is my endeavor to understand and implement a robust framework similar to Spring, inspired by Richard Feynman’s principle: “What I cannot create, I do not understand.” This framework aims to encapsulate a wide array of functionalities essential for building modern Java applications, mirroring the comprehensive features found in Spring.

Key Functionalities

MVC Architecture

  • Purpose: Facilitates structured development of web applications by separating concerns into Model, View, and Controller components.
  • Implementation: Provides routing mechanisms, request handling, and response rendering for building web interfaces.

Embedded Server

  • Purpose: Simplifies deployment and testing by bundling a lightweight web server within the framework.
  • Implementation: Supports embedded servers like Tomcat, Jetty, or Undertow for running applications without requiring a separate application server.

SPA with InertiaJS

  • Purpose: Enables Single Page Application (SPA) development with minimal client-side JavaScript.
  • Implementation: Integrates InertiaJS to manage server-side rendering and client-side interactions, maintaining a modern user experience.

RESTful API Support

  • Purpose: Facilitates building scalable and interoperable APIs conforming to REST architectural principles.
  • Implementation: Includes annotations or conventions for defining API endpoints, request handling, and response formatting.

Object-Relational Mapping (ORM)

  • Purpose: Simplifies database access and manipulation by mapping database tables to Java objects.
  • Implementation: Integrates with ORM frameworks like Hibernate or JPA to manage entity relationships, transactions, and database queries.

Module Generation CLI

  • Purpose: Streamlines project development by generating reusable modules or components.
  • Implementation: CLI commands for scaffolding code templates, configuring dependencies, and integrating generated modules into existing projects.

Project Generation CLI

  • Purpose: Automates the setup of new projects with predefined directory structures, configurations, and initial dependencies.
  • Implementation: CLI commands for creating project skeletons, configuring build scripts, setting up initial configurations, and integrating required libraries.

GraphQL Support

  • Purpose: Provides a flexible and efficient approach to querying and manipulating data using GraphQL APIs.
  • Implementation: Includes libraries and utilities for defining GraphQL schemas, resolving queries, and managing data fetching.

Philosophy Behind Anemoi Framework

The framework is designed with the following principles in mind:

  • Simplicity: Provides intuitive APIs and configurations to minimize complexity and boilerplate code.
  • Flexibility: Offers modular components and extension points to adapt to diverse application requirements.
  • Performance: Optimizes for performance and scalability to handle varying workload demands effectively.

Conclusion

By incorporating MVC architecture, embedded server capabilities, InertiaJS for SPAs, RESTful API support, ORM for database interactions, CLI tools for module and project generation, and GraphQL integration, the Anemoi Framework aims to empower developers with a versatile toolkit for building modern Java web applications efficiently. It represents a commitment to understanding and implementing complex software architectures while prioritizing ease of use and developer productivity.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages