Look at me, I'm a readme
kmmtg's Introduction
kmmtg's People
kmmtg's Issues
Deployment/running
Get this actually running somewhere. Probably my server if we get it into a docker container and figure out how to push updates to that. Could just run a git server instance on my server that we can push to then just redeploy when it receives a push. Thats how heroku works i think
Create a rest api
Wrap the backend stuff in a rest api to be able to interact with the database remotely.
Export collection database
Let us export every card in the collection database (for a specific user) to the various collection tracker sites (moxfield and deckbox at least). Keep it functional so maybe return like a sequence or a flow and let the calling code consume that and write it to a file.
cache scryfall data to avoid api limiting
Track deck/location in database
Add the ability to have a decklist stored in the database that can reference specific cards stored in the collection table. This can serve double duty as a way to tag where a card is physically on a per card basis e.g. "i have 3 Boseijus in my collection cuz I'm Sal and im just a lucky little guy who gets all the good pulls. 1 in alt art foil thats in my bushwacker tribal deck, one in my NEO box, and one as a coaster in the living room"
Should be able to have an incomplete decklist thats only partially satisfied by cards in the collection
support multiple users
Update database schema to support multiple users so we can start actually using it on one instance soon
Import CardCastle csv into database
Just pull stuff from https://github.com/mrf7/CardCastleTranslator and tweak to be able to parse the csv generated by card castles export and insert that into the database.
Do the import and insert separately cuz CLEAN/functional programming or whatever. That way we can interject with a confirmation or whatever
Create Collection Database schema
Come up with a first pass schema to track a single users collection. High level there will probably just be a Card table that has just enough columns to identify a specific card. e.g. Name, set, collector number, foil.
Add sql delight to project and implement schema with a suspend wrapper in carddb
Create a discord interface
Should probably go through the rest api eventually but this is probably our core interaction point so we can start by just having a discord module that depends on the other modules directly. Just make like a CardRepo
interface or whatever and an implementation that hits the db directly for now then we can swap it with a rest api impl later
Collection import/export
Add Koin for DI
Add koin to the project and figure out how to set it up with the bunch of module project. Maybe its just a koin module per project module and each end app (e.g. cli and discord bot) just pulls in the needed modules. Could also look into koin annotation with ksp
Update kotlin js to ir
Try Realm instead of sqldelight for persistence
Multi user Card database
End goal is to have a database setup that allows us to track the full collection of an arbitrary number of users as well.
Also want to be able to track decklists for users in a way that lets you associate specific cards in your collection with a deck so you can track where your cards are and what you need to complete your deck. The deck bit may take a decent amount of effort so might want to split that bit out
Add arrow
functional programming is cool. add arrow and use it
Create a web interface
Create some simple interface for development
Probably just a command line thing for now. Check out https://github.com/JakeWharton/mosaic if you want it seems cool
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.