Giter VIP home page Giter VIP logo

alumna's Introduction

Alumna Fontend: Development for Humans

npm codecov npm

Alumna is a front-end meta-framework and its goal is to make universal app development as human-friendly as possible, without compromising high performance and security.

alumna

Alumna is open-source (MIT), written in Javascript and based on Svelte.

Features

  • Easy built-in routing
  • Easy component creation (HTML and CSS)
  • Component auto-loading and auto-caching
  • Easy consumption of HTTP API's
  • Easy route filters

License

Copyright (c) 2015-2024 Paulo Coghi and contributors. Released under an MIT license.

alumna's People

Contributors

paulocoghi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

gitter-badger

alumna's Issues

Better error handling

Currently, in 2.0 branch, errors are thrown in console. As part of our effort to make Altiva modular, easily readable, usable and changeable, the modules now have to return errors to the caller, not to console.

In the CLI case, then the CLI module will show those errors in console.

Replace page.js with lukeed/navaid

Actually, the routing core of Altiva is page.js, but recently it has shown different behaviors between Firefox and Chrome when navigating with browser's buttons "back" and "forward".

Add API for caching specific routes and/or components

When a developer has sufficient information from his users behaviors, he will be able to specify which routes or components should be cached in specific situations.

Just as an example, it will be possible to determine the cache of /profile route (with all its components and subcomponents) when a user enters the /feed route.

Near real-time use for known behaviors, not just for "warmed" routes.

Build binaries

Currently considering pkg, but I'm open to learn the differences from other alternatives, like Nexe.

Use qwest.setDefaultOptions to set JWT header permanently

Currently, Altiva gives an altiva.auth.options property that can be used in authenticated ajax requests.

Now Qwest, that is our default bundled ajax library, create a new method qwest.setDefaultOptions, that we can use to set the JWT header permanently.

problem with start() not loading components from cordova windows app

I am building a Windows 10 app with cordova but when I call the app.start( ) function from altiva,
it points to unknown location (mainfolder/components) but as the cordova build all the files are in (mainfolder/www/components). so the only thing I did to fix this problem was changing the start: function ( ) from altiva.js at:

Altiva.load.baseUrl= this.config.path + '/components/';
to:

Altiva.load.baseUrl= this.config.path + '/www/components/';

Here's my app folder:
-images
-cordova
-build
-config.xml
-www
---components
---js
---css
---(other stuffs)
---index.html
I also have tried to put components folder outside from www folder but still not working,I guess its the cordova that don't build automatically by default others paths in the app besides the default folders. So is there any other way to do this changing of path for Altiva.load.baseUrl by not altering the altiva.js?

Complete code refactoring

Altiva was initially designed for specific projects.

Now it's used publicly and we hope to create a community and get contributions.

For this reason, it's indispensable to refactor all the code.

[WIP] Altiva modules - CLI

To allow developers to easily publish and use packages, a new mode must be added: altiva package [options]

This issue will track the progress of requisites to this new mode.

To be done

  • altiva module install module-name
  • altiva module update module-name
  • altiva module remove module-name
  • Complete documentation

Error when adding sub-components

In dev mode, when adding or removing sub-components, Altiva goes into an erroneous state and only works correctly again if it is terminated and started again.

[WIP] Altiva modules

This issue tracks the work in progress about modules in Altiva.

Since modules can be used to do things both before compilation, after it, or add functionalities in run time (browser), I will document my thoughts and ideas about the moments a module can interact (the "roles" that a module can assume). This can be a revolution in code and component sharing.

Moments of interactions / Roles

Developers can add one function or an array of functions, that will be executed in the passed order. Each role will have specific parameters that will be documented in the future.

In the case of components, instead of functions, a folder with components and (optionally) subfolders should be provided, that will be available to be used in the project.

  • Before compiling: beforeCompile
  • After compiling: afterCompile
  • Runtime: runtime

Refresh function to continued components

When a different route is loaded, it's useful to provide an "onRefresh" function that could be used by the non-changing components when the route changes.

But this could also be solved by simply making the "route" variable reactive.

[WIP] Automatic components versioning in build time

[WIP] Working in progress

This feature allows older components to co-exist with newer ones, and selective live-on-air updates managed by the application itself.

Also, completely solves the problem of browser cache when publishing updates to the app in one or more components. The versioning strategy saves each component's version in an unique filename, which provides an unique URL.

Project names with dots aren't considered valid

When using something like altiva new myproject.co.uk, Altiva doesn't accept it, returning:

 You can use just letters, numbers, '-' and '_' for your project name. Or '.' to use the current directory (that must be empty).

This need to be changed since folders names with dots are perfectly fine.

Selective reloading

Experiment and, if possible, implement selective reloading of changed files.

Update "altiva.hjson" in user's outdated projects

In old projects, there are cases where the altiva.hjson doesn't have all the current properties.

To solve this problem, I'm creating this issue to remember me that Altiva needs to check the user's altiva.hjson and update the missing parts, without changing the existing ones.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.