[API] AccountApi


GitHub - frogocomics/account: A simple account library for Sponge with FTP database and JSON support.


Most servers such as **HiveMC** or **The Chunk** have statistic systems that allows them to fetch information from a FTP Database. My goal for this lightweight, simple to use library is to provide a system whereas Accounts are created then sent to a specified FTP Server. The **AccountApi** is currently very early in development and therefore needs improvement through contributions and plenty of help from this great community. Our goals are to:
  • Create a easy to use api that is highly flexible
  • Make the api have great functionality, supporting FTP, mySQL and also a local JSON export opinion.
  • Document every aspect of the code so therefore it can be easily learned by others. I've provided the Github link, if anyone wants to check it out and help in one way or another. Thank you for taking the time to check this out, and I hope others will assist me at making this. :wink:
    We currently strictly use the [Google Code Conventions][1] and everyone must follow it or else their pull request will have a greater chance of rejection.
    [1]: https://google-styleguide.googlecode.com/svn/trunk/javaguide.html
  • I find it difficult to imagine that any large server network is collecting statistical information via an FTP server. Do you mean a SQL database?

    1 Like

    As I am younger then you think… I want to make the plugin have different export options. I am not good at working with server, FTP for mySQL, so therefore I require help. My goal for this project is to create a practical api that is lightweight and easy to learn and use. Right now I employ many libraries such as commons-net, gson, and Guava, of course.

    Who is ‘we’? Why don’t you start with a simple project?

    1 Like

    The thing is, this IS A SIMPLE PROJECT! Very simple in fact. I just need the help of a community to slowly improve it! :cry:

    You’ll find that SQL databases are the way to go, in a situation like this. FTP deals with transferring and reading entire files, rather than getting a little snippet of information as a SQL database does.

    5 Likes

    You’re correct. The Chunk uses MariaDB and Redis for their database/storage (source: developed their website). MongoDB is also a popular choice, though if you need really performant storage, Cassandra is epic.

    2 Likes

    That is the goal of this project. We want to support exporting in different formats, such as FTP, mySQL, JSON String, and a raw HashMap<String, Object>

    How, exactly, does one export a raw Java Object?

    He obviously locates the object in memory then extracts it byte by byte into a dump file. :stuck_out_tongue:
    Thats the cool way to export java objects.

    3 Likes

    Said it wrong :frowning: . I mean you could export it into a HashMap then do whatever you want with it.

    This is not a simple project by any means. You seem to intend to come up with a data management API that can persist using a variety of methods. When I just see some API that is meant to manage flexible data it already throws a flag that says this is going to be pretty difficult. You also intend to make it support multiple storage types / persistent storage which is even harder because different storage mediums support different ways of storing data. Putting data into a mysql database is going to be very different from putting it into JSON or “FTP”

    2 Likes

    Speaking as a general developer, not specifically a Java one…

    The challenge isn’t so much serializing and storing the data. That’s easy, and in itself could be a good exercise. The challenge is storing the data in a way that, to give some examples:

    • you can search for a particular entry in the data without having to look at or load all the database records.
    • you can write multiple records at the same time without their data conflicting or being overwritten.
    • the data can be distributed between multiple servers and queried transparently (including obtaining consensus)

    These are not, by any means, the only feats that must be surmounted when designing a data store, but they’re some high level examples.

    While building a little database for practice is great, building even one component of a good database is a PhD thesis-level exercise; don’t claim to be able to replicate such systems - and of course don’t claim that the Hive and The Chunk do things that they don’t :wink:

    3 Likes

    :slight_smile: . Thanks for your advice. I will start with storing data in mySQL before expanding to more options. Hopefully this project will gain contributors, as I need some help from the community.

    1 Like

    I seriously doubt that HiveMC & The Chunk use FTP to store data in realtime.

    They’ve already cleared that up.

    Now I wanna see you import that :stuck_out_tongue:

    closed upon request by frogocomics.