pilopa / mtg-cube Goto Github PK
View Code? Open in Web Editor NEWOpen Source project with the aim to create a free cube management web application for Magic: the Gathering
License: GNU Affero General Public License v3.0
Open Source project with the aim to create a free cube management web application for Magic: the Gathering
License: GNU Affero General Public License v3.0
There is an additional tool to this project which creates the card database. It is written in NodeJS and is functional, but not well integrated into this project. Currently, one has to run the db creation tool and manually copy the database over into this project's asset folder.
The tool has to be better integrated, either as an NPM package dependency or, for now, in a subdirectory in this repo. Either way, the tool would have to be slightly adjusted to either approach.
Currently, the application does not contain any tests despite featuring a fully ready testing framework for unit and end-to-end (e2e) tests. I am not the most experienced with writing those kind of tests for angular applications and any help or suggestion is welcomed.
For others to start contributing and reviewing code changes, they need to be able to run the project locally. The following subtasks will set a starting point for that:
COLLABORATE.md
to the repo and fill it with informationOne important part of Open Source projects is the Contributor License Agreement (CLA) which should be signed by each person that contributes code via a pull request (or directly, for that matter). CLA Assistant could provide a free option to solve an otherwise tedious process.
Developers need a performant and convenient way to search for cards with a set of filters.
The idea is to have a service which exposes a query function to which filters can be passed. In-Memory cache and browser cache should be used where-ever possible and the code should be implemented in a well-documented and reusable way.
I started work on this feature and managed to reduce the size of the base indices (excluding text indices) by about 50%.
The page template component is supposed to
a) make the user interface consistent
b) help contributors to focus on implementing features, instead of having perform repetitive tasks
It makes sure the page content is positioned correctly and adjusts properly to mobile screens. It also allows developers to adjust side-content, navigation and toolbar-content.
Ultimately, the template should be optional to not prevent developers from creating very specific layouts.
A periodically updated, aggregated summary of all cubes in the system.
It could be multiple sizes of lists, e.g 360, 540 & 720.
While there is only a small volume of cubes, the list could be created daily. Once the number of cubes exceeds ~1000, it should be roughly weekly.
Implementation:
Use a http cloud function triggered via a free cron service.
The project is set up to be automated by circleci but it currently does not pass deployment. My experience with circleci is fairly limited and I do not have the time to dive deep into it as the other issues take priority. If there is anyone who has experience and a good idea for the following setup, please respond to this issue:
Framework: Angular 7+
Build Tool: Angular CLI with webpack
Dependency Resolver: npm
CI: CircleCI
Hosting: Google Firebase
There are currently two firebase projects setup:
I considered using one as production and one as staging environment. The development builds could be fully automated and run on each pull request which passes tests/build. The production build should trigger only on manual, tagged releases to the master branch.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.