Jump to content

Majiir Mod Repo Challenge Accepted! O-Doc on Point


O-Doc

Recommended Posts

Hello!

(I'm back from exams and stuff)

Just wondering how this project is going?

I've begun adding documentation on the GitHub wiki of this project. I think that'd be a good place to let casual contributors, well, contribute.

(In other words, I'd like to sign up to help :).

I think it would be a good idea to host some of the regularly updated files from the documents.zip on the GitHub page. For instance, the en.php file would really benefit from this.

Git itself can be hard to set up and use (especially on windows), but there's the GitHub client for Windows, which is a full featured desktop GUI: http://windows.github.com/

I use this because it's much easier than trying to remember git commands every 4 months.

I haven't begun converting any of the files in documents.zip yet O-Doc; I want to check that the file linked in your first post is the most current, and that I actually have the go-ahead from you to make this wiki.

Thoughts?

Link to comment
Share on other sites

Hey guys,

Progress in solid. I've put up a post in the parent thread. I'm currently doing the transaction and behavioural layers of the website. Mostly the transaction stuff with the initial setup of the behaviour scaffold. At this point, I'll do a few more hours work and then reassess where we're at and come back here to assign tasks. See you in a bit.

EDIT: Documents zip is up to date and basic app design is done, I update when the docs when new information is established. There's not much fundamental stuff to add except possible a front-end specification for data inputs which, I'm happy for someone to complete/contribute.

Edited by O-Doc
Link to comment
Share on other sites

Git itself can be hard to set up and use (especially on windows), but there's the GitHub client for Windows, which is a full featured desktop GUI: http://windows.github.com/

I very much prefer SVN for professional projects. I've been involved with too many jobs that had their deadlines sabotaged by Github. It's fun for geeking out if you have the time and patience. I don't have a whole lot of that to spare these days. I strongly recommend Tortoise for Git. You get the SVN experience without having to put up with the failware that Windows for Git is.

BTW, first real commit for this project is going up today and I'll leave the source code open for now so interested parties can get a peak under the hood.

PS: Just tried Windows for Git. Immediate uninstall. LOL!

Link to comment
Share on other sites

Just a quick update guys. The repo is now being updated daily or every other day. The data is moving end to end in a forwads direction so you can download the project, configure your server and start seeing results:

*** Image removed ***

Sample data displayed on homepage, not complete or error free but, displaying none-the-less. I'll be removing this image as progress moves forward.

If you want to contribute on a coding level then the first step is to get working local copy and start familiarising yourself with the code. It's very simple code, no unnecessary abstraction to be found. Once you're familiar let me know what you want to do and we'll work it out.

Because the end to end is now connected the pace of this project will start to accelerate. :)

Edited by O-Doc
Link to comment
Share on other sites

:( PHP -.-

Anyway, good luck guys.. I'll see if I can pitch in later in the project...

Hey TMS, thanks for the clarification. Any help on that front would be most welcome. I think the auto-updater will work very well with our module dependencies schema. I'm happy to walk through the database schema with you or, anyone else who wants to put their hand up for the job. :)

Any updates whether or not someone have looked into this.

I know C++(2y xp)/C#(10+y xp)/Java(10+y xp). So something like this updater would be right down my alley, if we are actually talking about a win-app. However, I dont have any experience with coding for linux.

Edited by Yilmas
Link to comment
Share on other sites

Any updates whether or not someone have looked into this.

I know C++(2y xp)/C#(10+y xp)/Java(10+y xp). So something like this updater would be right down my alley, if we are actually talking about a win-app. However, I dont have any experience with coding for linux.

Perhaps you should private message TMS. The response_api.js file in the documentation describes the structure of the project data once it has come out of the database and has moved through the server transaction layer. Pay attention to projects.files, projects.changelogs and projects.dependencies for the data you are going to need to build the auto-updater. I can organise some additional server-side formatting if you want that data served up as an XML feed. That's a generic routine which is on the drawing boards which, hopefully Angus will come back with an indication that he wants to take on this task.

PHP, btw, is basically a wrapper for C. All the basic function level calls are virtually identical, particularly I/O and other resource management. It just has a hacked together(ahem, sorry Zend) OO layer on top as a direct response to ASP and JSP circa 2000-2001.

Getting a dev server up and running is simple with XAMPP and some edits to the apache vhosts file(I can send you copies to be instantly setup). Obviously, that last sentence was for the benefit of everyone out there who self-describe as "not a PHP guy".

Anyway, if you guys can collaborate on the updater, I'm sure you'll get plenty of cookies in this life and the next. :)

Update from me: Design is now done. The style guide approves. Project display is complete and I'm moving on to navigation elements and user-data interactions. I might tweak the logo a tad, it looks a little rusty against the icons. If anyone has some awesome ingame shots, now would be the time to hand them over. I'll be using some of mine but, I thought I'd leave the floor open for contributions.

Link to comment
Share on other sites

Sorry for the delay. Got sidetracked. I've introduced the thread/project to the four authors of other mod managers, inviting them to get involved as a stakeholder.

I figure it'd be better to have them involved in the thread, rather than relaying messages back and forth. Hopefully, if there's any hidden/future/desirable API requirements for mod management software, they should be able to describe them.

Link to comment
Share on other sites

Hi,

its nice to see this community projekt makes progress.

I would love to integrate this upcoming new source of mods into my KSP MA.

First a question. What do you mean with API? A real WebService i could call or a bunsh of .php scripts that covers the needed functions.

Anyway the functions/scripts that would make things more easy to me would be:

Minimun:

- Function to get "update" infos by ModID (or key or guid or ...)

Like: Version, UpdateDate, DownloadCount, Rating, (maybe change log notes if you support that)

- Function to direct download a by ModID (or key or ...)

- A easy way to parse the ModID (or ...) from the mod site (maybe from the url).

Nice to have:

- Function that gives detailed information about the mod (more or less all your DB could provide :)) by ModID (o...)

Maybe this could be distributed by more then one function for less treffic.

Link to comment
Share on other sites

Ok, sorry I've been silent. Its Memorial Day weekend here in the US, and it's pretty much the only time I'll have with my family until August, so I haven't really done anything.

However, I have been familiarizing myself with the current code and will be able to start actual work sometime Wednesday.

That said: do we have any way to communicate once the forums go down tomorrow? I know I'll certainly be wanting to communicate as I get going on my tasks.

EDIT: And I can always try to grab a nice screenshot, as well!

EDIT2: Testing a 40 ton lifter. I thought these looked pretty cool, but I'm no screenshot guru :P

KL0p28f.png

cLkbz0H.png

8daFzmr.png

O6mTdMo.png

Edited by AngusJimiKeith
Link to comment
Share on other sites

I figure it'd be better to have them involved in the thread, rather than relaying messages back and forth. Hopefully, if there's any hidden/future/desirable API requirements for mod management software, they should be able to describe them.

Awesome. I'll PM everyone so we can do some back and forth via email. In terms of API, I have a route design for watchlists which will update users on changes to mods they are "watching". I think this should be the basis of the interaction with mod managers. It should be no issue to integrate the user login and watchlist functionality straight into the installation of a mod manager.

First a question. What do you mean with API? A real WebService i could call or a bunsh of .php scripts that covers the needed functions.

Anyway the functions/scripts that would make things more easy to me would be:

Your mod manager will make an http request to a url address like this:

replaceporturl.com/manager?user=yourusername&password=hashedpasssword&action=update

Then you'll get a response back in the form of a JSON object or an XML feed with the complete data for each project. The JSON looks like this:


projects
{
0 :
{
key : projects.key,
order : SEARCH_LOGIC,
category : categories.key,
created : projects.created,
modfied : projects.modfied,
owner : project.user_id,
title : projects.title,
summary : projects.summary,
image : FILE_LOCATION,
thumbnail : FILE_LOCATION,
description : projects.description,
totaldownloads : downloads.join(project_id),
mothlydownloads : downloads.join(project_id),
rating : rating.join(project_id),
tags : tag.join(project_id),
changelogs :
{
0 :
{
user : users.username,
game_version : changelogs.game_version,
project_version : changelogs.project_version,
created : changelogs.created,
modified : changelogs.modified,
comment : changelogs.comment
}
},
dependencies :
{
0 :
{
created : dependencies.created,
version : changelogs.project_version, //from dependencies.changelog_id
game : changelogs.game_version, //from dependencies.changelog_id
project : projects.key, //from dependencies.require_id -> changelogs.project_id
changelog : changelogs.project_version //from dependencies.require_id
}
},
contributors :
{
0 :
{
status : contributor.status,
username : users.username,
alias : users.alias,
created : users.created
}
},
files :
{
0 :
{
name : files.name,
format : files.format,
location : files.location,
size : files.size,
attributes : files.attributes,
version : changelogs.project_version,
created : files.created,
modified : files.modified,
}
},
comments :
{
0 :
{
created : comments.created,
alias : users.alias,
comment : comments.comment
}
},
watchlists :
{
0 :
{
username : users.username,
alias : users.alias,
created : watchlists.created
}
},
reports :
{
0 :
{
username : users.username,
status : reports.status,
comment : reports.created,
created : reports.created,
}
}
}
}

I can help you out connecting all the dots within this data set.

Minimun:

- Function to get "update" infos by ModID (or key or guid or ...)

Like: Version, UpdateDate, DownloadCount, Rating, (maybe change log notes if you support that)

- Function to direct download a by ModID (or key or ...)

- A easy way to parse the ModID (or ...) from the mod site (maybe from the url).

projects.key is your unique ID and all the data is packaged into that JSON object. This key is the url for the project dowload page: replaceporturl.com/projects/project.key

users.username is also a unique identifier for the user and their projects can be viewed at the following page: replaceporturl.com/users/user.username

The routing for module manager interaction hasn't been setup. Hopefully we can all work together to bolt down those requirements.

EDIT: I should also mention that latest release files will have a persistent URL: replaceporturl.com/uploads/project.key/latest.zip

Edited by O-Doc
Link to comment
Share on other sites

I would be happy to be of service! I do a bit of Java, but that's basically it. If you need any help, I'd be happy to oblige, but as I said, my skillset is limited.

There's plenty to do. How about you have a look at the buildnotes.txt document. I've started to describe the individual form elements. We still need to go through the wireframes.pdf document and convert those visuals into description of data inputs. What validation are they going to need? What error messages are going to be displayed when that validation fails? Is that something you are interested in doing?

Link to comment
Share on other sites

Since I used to work on a mod manager, I'll give the absolute basics needed for complete integration (I'll leave out things you've already done):

  • MD5/SHA1/Any form of hashing to determine if the mod in question has updated/changed
  • With the mod info retrieved from the JSON object, KSP Version would be nice to detect version incompatibilities (Also, with the "files" section, does it include each file in the archive?)
  • A list of the top 10 (or any number) popular mods, and some common dependencies (i.e. mods that are dependencies for a majority of other mods)

One question is will there be any form of keeping old versions of mods? I've seen some cases were newer versions caused new incompatibilities, and users would use an old version instead.

I would like help out, but I'm working on domesticating KSPMM to be able to work on other games :)

Link to comment
Share on other sites

Your mod manager will make an http request to a url address like this:

replaceporturl.com/manager?user=yourusername&password=hashedpasssword&action=update

Then you'll get a response back in the form of a JSON object or an XML feed with the complete data for each project. The JSON looks like this:


projects
...

I can help you out connecting all the dots within this data set.

projects.key is your unique ID and all the data is packaged into that JSON object. This key is the url for the project dowload page: replaceporturl.com/projects/project.key

users.username is also a unique identifier for the user and their projects can be viewed at the following page: replaceporturl.com/users/user.username

The routing for module manager interaction hasn't been setup. Hopefully we can all work together to bolt down those requirements.

EDIT: I should also mention that latest release files will have a persistent URL: replaceporturl.com/uploads/project.key/latest.zip

Not too sure I like the idea of using raw/semi-raw data on the URI. Also, is that a real mirror of what it's gonna look like ? (In the case of a ModManager in KSP, I dont see the need to audit its every movement through the database.)

Regarding the downtime of the forums, and for future small talk, any thoughts on using irc ? Personally, I've always had great experience with that, and when fx. we are talking about small talk, the forum will quickly get flooded.

Link to comment
Share on other sites

Since I used to work on a mod manager, I'll give the absolute basics needed for complete integration (I'll leave out things you've already done):

I'm not familiar with the mod manager code or how it works. I'm just providing an API to plugin into the website. You can use it however you want.

  • MD5/SHA1/Any form of hashing to determine if the mod in question has updated/changed
  • With the mod info retrieved from the JSON object, KSP Version would be nice to detect version incompatibilities (Also, with the "files" section, does it include each file in the archive?)
  • A list of the top 10 (or any number) popular mods, and some common dependencies (i.e. mods that are dependencies for a majority of other mods)

Please see API provided. No hash will be supplied(you can always create your own), instead datetime and full version numbers are given in the changelogs and dependencies data. I am not authoring a full repo algorithm(like Git or SVN) for developers to manage their project development on. I've already stated my objections to this approach for a community repository. This is a public website, all data supplied in the API is for full public consumption. All, sensitive data is filtered out during the transaction processing step.

The files in the archive are kept in the repo folder. See the example repo in the documents section of the github files(documents/uploads/). There will be a single zip file per project version, doing multiple files introduces a level of complexity that I'm not prepared to undertake at the moment. This feature can be introduced at a later point intime. The latest version goes into /uploads/project-name/latest.zip and older release versions go to uploads/project-name/release/filename.versionnumber.zip and the private builds for distribution(if authors want to take up this feature) is uploads/project-name/builds/filename.versionnumber.zip

So, the latest file is replaced and the url is persistant to the project so you will always know where to get the latest file. You can reconstruct the urls of all version files based on feed/requested data.

I may do a popular mods feed but, I'm reticent about favouratism on an external feed so, that is a nice to have feature.

One question is will there be any form of keeping old versions of mods? I've seen some cases were newer versions caused new incompatibilities, and users would use an old version instead.

It will be up to the mod author to upload old versions of their mods to the website.

Link to comment
Share on other sites

Not too sure I like the idea of using raw/semi-raw data on the URI. Also, is that a real mirror of what it's gonna look like ? (In the case of a ModManager in KSP, I dont see the need to audit its every movement through the database.)

The website is publishing on https protocol. I'll be using salted encyption on the module management plugin which developers will have access to so we don't get any account hijacking. I'm not sure what you mean by tracking movement through the database, I'm just supplying a data output from which you can take whatever data you need. I'm not customising the data specifically for module managers, I have to serve data to other stakeholders in the project and I'm minimising my workload(with a unified API) which is fairly significant as it stands.

I can give you the example JSON object from the testdata.sql data set if needed.

Regarding the downtime of the forums, and for future small talk, any thoughts on using irc ? Personally, I've always had great experience with that, and when fx. we are talking about small talk, the forum will quickly get flooded.

Feel fee to PM me your email address and we can organise Skype chat or something else. I may look into the kspmodders chat if there are barriers which can be solved through this medium.

Link to comment
Share on other sites

I'm not familiar with the mod manager code or how it works. I'm just providing an API to plugin into the website. You can use it however you want.

Please see API provided.

All, sensitive data is filtered out during the transaction processing step.

Could you provide me with a direct link to any documentation for your API or if non exist, the direct link for the API itself. I'm currently writing this post from my mobile, sweaty fingers and touchscreen not a good combination.

I may do a popular mods feed but, I'm reticent about favouratism on an external feed so, that is a nice to have feature.

Well, wouldn't it be rather simple to just make 3 feeds, Popular(Most downloaded), Recently Updated and New Creations. If you do it this way, no can accuse you of favoritism, and we all walk away happy :)

It will be up to the mod author to upload old versions of their mods to the website.

As it should be, any other ideology would be highly counter-logical, and wouldn't it break a couple of licenses and perhaps even KSP EULA/ToA.

The website is publishing on https protocol. I'll be using salted encyption on the module management plugin which developers will have access to so we don't get any account hijacking. I'm not sure what you mean by tracking movement through the database, I'm just supplying a data output from which you can take whatever data you need. I'm not customising the data specifically for module managers, I have to serve data to other stakeholders in the project and I'm minimising my workload(with a unified API) which is fairly significant as it stands.

Don't get me wrong, I'm all in for a unified API. And even though I've had multiple bad experiences with salted encryption I'm willing to give it another go, as long as I'm not the one having to take responsibility. You may call it being ignorant or lazy, but hobby and real-life work should be separated.

What I was referring to was the need for this? I mean why make the mod-manager need a pass-phrase to access the data if it is going to be the same pass-phrase for each end-user.

An ex. of a good use of authentication for mod-manager access to an API is Eve-Online, in this case it not only makes sense, but it would be highly improbable if not used. In this example it is a needed part for logical reasons to get an auth. But with your(we need a name for this project) site, I simply cant see the reason for using it.

I can give you the example JSON object from the testdata.sql data set if needed.

Please do, either by direct link or a code snippet here. Perhaps you/we should make use of the spoiler tag for code. As to not cram everything up.

Feel fee to PM me your email address and we can organise Skype chat or something else. I may look into the kspmodders chat if there are barriers which can be solved through this medium.

PM Sent, and looking forward to a favorable and productive project.

----------

PS: I'd like to just say that I'm currently working very heavily on a rather large mod-pack/overhaul for KSP. Which I'm getting close to releasing an alpha for. So my time spent on this project and yours wont be 50/50, but I will pitch in as much as possible.

----------

Link to comment
Share on other sites

Could you provide me with a direct link to any documentation for your API or if non exist, the direct link for the API itself. I'm currently writing this post from my mobile, sweaty fingers and touchscreen not a good combination.

All the project links are on the OP. You can download the entire project package at github: https://github.com/monkey100/replaceport

Well, wouldn't it be rather simple to just make 3 feeds, Popular(Most downloaded), Recently Updated and New Creations. If you do it this way, no can accuse you of favoritism, and we all walk away happy :)

I'm going to keep that stuff out of scope and come back to it when the basic website is up and running. We can collaborate to find the best solution to implementing this functionality. You can find example RSS feeds in the documentation, one of which is watchlist which we may be able to parameterize to get updates for installed modules.

Don't get me wrong, I'm all in for a unified API. And even though I've had multiple bad experiences with salted encryption I'm willing to give it another go, as long as I'm not the one having to take responsibility. You may call it being ignorant or lazy, but hobby and real-life work should be separated.

Almost all data coming through the transaction layer is all public. But, the security layer is there to address user authentication. In terms of your concern about security, I tell every client without exception that security cannot be absolutely guaranteed through either http or https protocol. That's the reality of web architecture.

What I was referring to was the need for this? I mean why make the mod-manager need a pass-phrase to access the data if it is going to be the same pass-phrase for each end-user.

An ex. of a good use of authentication for mod-manager access to an API is Eve-Online, in this case it not only makes sense, but it would be highly improbable if not used. In this example it is a needed part for logical reasons to get an auth. But with your(we need a name for this project) site, I simply cant see the reason for using it.

The intention of using an API key is mostly for metrics data which Majiir can access at a server level. It's also there to pick up spam and DOSS atacks early without tying up system resources. Each module manager should have API key credentials embedded into the replaceport interface code. This way we can get a good top level picture of how users are getting their modules from the website. As a module manager author you can create new passwords for each version of your application and I can then come back and tell you what your metrics are for replaceport's point of view.

Please do, either by direct link or a code snippet here. Perhaps you/we should make use of the spoiler tag for code. As to not cram everything up.

Here's the homepage building AJAX response as it stands. There will be some minor modifications, debugging, etc, when I come back to this after other tasks are done. The formatting was done by http://jsonformat.com/


{ "categories" : [ { "0" : "1",
"1" : "0",
"2" : "mods",
"3" : "Community Mods",
"4" : "10",
"5" : "2014-05-10 22:18:01",
"6" : "2014-05-10 22:18:09",
"children" : [ { "0" : "2",
"1" : "1",
"2" : "interface",
"3" : "User Interface",
"4" : "10",
"5" : "2014-05-10 22:19:25",
"6" : "2014-05-10 22:19:30",
"children" : [ ]
},
{ "0" : "3",
"1" : "1",
"2" : "gameplay",
"3" : "Modified Gameplay",
"4" : "20",
"5" : "2014-05-10 22:20:19",
"6" : "2014-05-10 22:20:26",
"children" : [ ]
},
{ "0" : "4",
"1" : "1",
"2" : "builder",
"3" : "Buider Customization",
"4" : "30",
"5" : "2014-05-10 22:21:18",
"6" : "2014-05-10 22:21:24",
"children" : [ ]
},
{ "0" : "5",
"1" : "1",
"2" : "tutorials",
"3" : "User Generated Turtorials",
"4" : "40",
"5" : "2014-05-10 22:22:24",
"6" : "2014-05-10 22:22:29",
"children" : [ ]
}
]
},
{ "0" : "6",
"1" : "0",
"2" : "files",
"3" : "Custom Files",
"4" : "10",
"5" : "2014-05-10 22:23:17",
"6" : "2014-05-10 22:23:23",
"children" : [ { "0" : "7",
"1" : "6",
"2" : "sounds",
"3" : "Sound Files",
"4" : "10",
"5" : "2014-05-10 22:24:06",
"6" : "2014-05-10 22:24:11",
"children" : [ ]
},
{ "0" : "8",
"1" : "6",
"2" : "textures",
"3" : "Texture Files",
"4" : "20",
"5" : "2014-05-10 22:24:55",
"6" : "2014-05-10 22:25:00",
"children" : [ ]
},
{ "0" : "9",
"1" : "6",
"2" : "config",
"3" : "Configuration Files",
"4" : "30",
"5" : "2014-05-10 22:26:01",
"6" : "2014-05-10 22:26:08",
"children" : [ ]
}
]
},
{ "0" : "10",
"1" : "0",
"2" : "parts",
"3" : "Custom Parts",
"4" : "10",
"5" : "2014-05-10 22:27:07",
"6" : "2014-05-10 22:27:12",
"children" : [ { "0" : "11",
"1" : "10",
"2" : "propulsion",
"3" : "Propulsion",
"4" : "10",
"5" : "2014-05-10 22:28:20",
"6" : "2014-05-10 22:28:28",
"children" : [ ]
},
{ "0" : "12",
"1" : "10",
"2" : "fuel",
"3" : "Fuel Tanks",
"4" : "20",
"5" : "2014-05-10 22:29:28",
"6" : "2014-05-10 22:29:33",
"children" : [ ]
},
{ "0" : "13",
"1" : "10",
"2" : "airplane",
"3" : "Airplane",
"4" : "30",
"5" : "2014-05-10 22:30:21",
"6" : "2014-05-10 22:30:27",
"children" : [ ]
},
{ "0" : "14",
"1" : "10",
"2" : "structural",
"3" : "Structural",
"4" : "40",
"5" : "2014-05-10 22:31:16",
"6" : "2014-05-10 22:31:21",
"children" : [ ]
},
{ "0" : "15",
"1" : "10",
"2" : "utilities",
"3" : "Utilities",
"4" : "50",
"5" : "2014-05-10 22:32:00",
"6" : "2014-05-10 22:32:07",
"children" : [ ]
}
]
},
{ "0" : "16",
"1" : "0",
"2" : "crafts",
"3" : "Craft Files",
"4" : "40",
"5" : "2014-05-10 22:59:03",
"6" : "2014-05-10 22:59:09",
"children" : [ { "0" : "17",
"1" : "16",
"2" : "vab",
"3" : "Vehicle Assembly Building",
"4" : "10",
"5" : "2014-05-10 23:00:01",
"6" : "2014-05-10 23:00:07",
"children" : [ ]
},
{ "0" : "18",
"1" : "16",
"2" : "sph",
"3" : "Space Plane Hanger",
"4" : "20",
"5" : "2014-05-10 23:00:48",
"6" : "2014-05-10 23:00:55",
"children" : [ ]
},
{ "0" : "19",
"1" : "16",
"2" : "subassemblies",
"3" : "Subassemblies",
"4" : "30",
"5" : "2014-05-10 23:01:41",
"6" : "2014-05-10 23:01:46",
"children" : [ ]
}
]
},
{ "0" : "20",
"1" : "0",
"2" : "apps",
"3" : "Third Party Apps",
"4" : "50",
"5" : "2014-05-10 23:02:40",
"6" : "2014-05-10 23:02:45",
"children" : [ ]
},
{ "0" : "21",
"1" : "0",
"2" : "community",
"3" : "Community Websites",
"4" : "60",
"5" : "2014-05-10 23:03:28",
"6" : "2014-05-10 23:03:33",
"children" : [ ]
},
{ "0" : "22",
"1" : "0",
"2" : "savedgames",
"3" : "Saved Games",
"4" : "70",
"5" : "2014-05-10 23:04:43",
"6" : "2014-05-10 23:04:49",
"children" : [ ]
}
],
"downloaded" : [ { "changelogs" : [ { "comment" : "This is the first upload of the project. Like the project description field this will store formatting using BB which will be created in a tinyMCE UI applet.\r\n\r\n[U]format test[/U]\r\n\r\nIn the chagelog field, because this description can be long, there will be an accordian list of changes with a toggle to view this description. Cool.\r\n\r\nI'm thinking of making all project changelogs downloadable as a single file.",
"created" : "2014-05-10 23:33:15",
"game_build" : null,
"game_major" : "0",
"game_minor" : "23",
"game_revision" : "5",
"modified" : "2014-05-10 23:34:09",
"project_build" : null,
"project_major" : "1",
"project_minor" : "0",
"project_revision" : null,
"public" : "1"
},
{ "comment" : "This is an untested build by the new contributor",
"created" : "2014-05-11 02:58:01",
"game_build" : null,
"game_major" : "0",
"game_minor" : "23",
"game_revision" : "5",
"modified" : "2014-05-11 02:58:11",
"project_build" : "1",
"project_major" : "1",
"project_minor" : "0",
"project_revision" : "0",
"public" : "0"
}
],
"comments" : [ { "comment" : "This is a comment. Like all description fields this field uses BB code to store data formatting.\r\n\r\n[I] formatting test[/I]\r\n\r\nIn the script the actual comment is going to be reduced by an arbitrary amount. Maybe somewhere in the vicinity of 500 words, which would translate to about 8000chars.",
"created" : "2014-05-11 00:30:53",
"modified" : "2014-05-11 00:30:59"
} ],
"contributors" : [ { "alias" : "2014-05-11 02:35:09",
"email" : "owner",
"password" : "1",
"status" : "2014-05-11 02:35:09",
"username" : "2"
},
{ "alias" : "2014-05-11 02:47:56",
"email" : "developer",
"password" : "1",
"status" : "2014-05-11 02:48:04",
"username" : "3"
}
],
"created" : "2014-05-10 23:27:14",
"dependencies" : [ ],
"description" : "This is the first test mod fixture around which user interfaction will be developed.\r\n\r\n[B]title test[/B]\r\n\r\nThis description area is going to use BB tags to display the project description. This will allow users to format their description and include links, etc, directly into the description.\r\n\r\nThis field is a TEXT field so project owner's will get over 65000 characters to describe their module. A bit more than twitter.",
"downloads" : [ { "created" : "2014-05-11 00:34:03" } ],
"files" : [ { "attributes" : null,
"created" : "2014-05-11 00:17:03",
"format" : "zip",
"location" : "release/",
"mirror" : null,
"modified" : "2014-05-11 00:17:03",
"name" : "twos-mod.1.0",
"size" : "1"
},
{ "attributes" : null,
"created" : "2014-05-11 03:02:22",
"format" : "zip",
"location" : "builds/",
"mirror" : null,
"modified" : "2014-05-11 03:02:30",
"name" : "twos-mod.1.0.0.1",
"size" : "1"
},
{ "attributes" : { "height" : 2400,
"title" : "My Rocket",
"width" : 2400
},
"created" : "2014-05-11 04:42:27",
"format" : "png",
"location" : "images/",
"mirror" : null,
"modified" : "2014-05-11 04:42:32",
"name" : "banner",
"size" : "239256"
},
{ "attributes" : { "height" : 2400,
"title" : "My Rocket",
"width" : 2400
},
"created" : "2014-05-11 04:44:02",
"format" : "png",
"location" : "images/",
"mirror" : null,
"modified" : "2014-05-11 04:44:06",
"name" : "thumbnail",
"size" : "239256"
},
{ "attributes" : null,
"created" : "2014-05-11 04:48:04",
"format" : "txt",
"location" : "assets/",
"mirror" : null,
"modified" : "2014-05-11 04:48:09",
"name" : "readme",
"size" : "1287"
}
],
"followers" : 1,
"image" : "images/banner.png",
"key" : "twos-mod",
"modified" : "2014-05-10 23:27:22",
"monthlydownloads" : 1,
"owner" : "TwoTwo",
"rating" : "4",
"reports" : [ { "comment" : "I don't like this module after all. It sucks!",
"created" : "2014-05-11 00:32:30",
"modified" : "2014-05-11 00:32:37",
"outcome" : null,
"status" : "active"
} ],
"summary" : "This is the first test mod fixture around which user interfaction will be developed.",
"tags" : [ { "active" : "1",
"created" : "2014-05-11 00:22:43",
"tag" : "test"
} ],
"thumbnail" : "images/thumbnail.png",
"title" : "Two's Module",
"totaldownloads" : 1,
"version" : "1",
"watchlists" : [ { "created" : "2014-05-11 00:27:46",
"modified" : "2014-05-11 00:27:53",
"status" : "1"
} ]
} ],
"rated" : [ { "changelogs" : [ { "comment" : "This is the first upload of the project. Like the project description field this will store formatting using BB which will be created in a tinyMCE UI applet.\r\n\r\n[U]format test[/U]\r\n\r\nIn the chagelog field, because this description can be long, there will be an accordian list of changes with a toggle to view this description. Cool.\r\n\r\nI'm thinking of making all project changelogs downloadable as a single file.",
"created" : "2014-05-10 23:33:15",
"game_build" : null,
"game_major" : "0",
"game_minor" : "23",
"game_revision" : "5",
"modified" : "2014-05-10 23:34:09",
"project_build" : null,
"project_major" : "1",
"project_minor" : "0",
"project_revision" : null,
"public" : "1"
},
{ "comment" : "This is an untested build by the new contributor",
"created" : "2014-05-11 02:58:01",
"game_build" : null,
"game_major" : "0",
"game_minor" : "23",
"game_revision" : "5",
"modified" : "2014-05-11 02:58:11",
"project_build" : "1",
"project_major" : "1",
"project_minor" : "0",
"project_revision" : "0",
"public" : "0"
}
],
"comments" : [ { "comment" : "This is a comment. Like all description fields this field uses BB code to store data formatting.\r\n\r\n[I] formatting test[/I]\r\n\r\nIn the script the actual comment is going to be reduced by an arbitrary amount. Maybe somewhere in the vicinity of 500 words, which would translate to about 8000chars.",
"created" : "2014-05-11 00:30:53",
"modified" : "2014-05-11 00:30:59"
} ],
"contributors" : [ { "alias" : "2014-05-11 02:35:09",
"email" : "owner",
"password" : "1",
"status" : "2014-05-11 02:35:09",
"username" : "2"
},
{ "alias" : "2014-05-11 02:47:56",
"email" : "developer",
"password" : "1",
"status" : "2014-05-11 02:48:04",
"username" : "3"
}
],
"created" : "2014-05-10 23:27:14",
"dependencies" : [ ],
"description" : "This is the first test mod fixture around which user interfaction will be developed.\r\n\r\n[B]title test[/B]\r\n\r\nThis description area is going to use BB tags to display the project description. This will allow users to format their description and include links, etc, directly into the description.\r\n\r\nThis field is a TEXT field so project owner's will get over 65000 characters to describe their module. A bit more than twitter.",
"downloads" : [ { "created" : "2014-05-11 00:34:03" } ],
"files" : [ { "attributes" : null,
"created" : "2014-05-11 00:17:03",
"format" : "zip",
"location" : "release/",
"mirror" : null,
"modified" : "2014-05-11 00:17:03",
"name" : "twos-mod.1.0",
"size" : "1"
},
{ "attributes" : null,
"created" : "2014-05-11 03:02:22",
"format" : "zip",
"location" : "builds/",
"mirror" : null,
"modified" : "2014-05-11 03:02:30",
"name" : "twos-mod.1.0.0.1",
"size" : "1"
},
{ "attributes" : { "height" : 2400,
"title" : "My Rocket",
"width" : 2400
},
"created" : "2014-05-11 04:42:27",
"format" : "png",
"location" : "images/",
"mirror" : null,
"modified" : "2014-05-11 04:42:32",
"name" : "banner",
"size" : "239256"
},
{ "attributes" : { "height" : 2400,
"title" : "My Rocket",
"width" : 2400
},
"created" : "2014-05-11 04:44:02",
"format" : "png",
"location" : "images/",
"mirror" : null,
"modified" : "2014-05-11 04:44:06",
"name" : "thumbnail",
"size" : "239256"
},
{ "attributes" : null,
"created" : "2014-05-11 04:48:04",
"format" : "txt",
"location" : "assets/",
"mirror" : null,
"modified" : "2014-05-11 04:48:09",
"name" : "readme",
"size" : "1287"
}
],
"followers" : 1,
"image" : "images/banner.png",
"key" : "twos-mod",
"modified" : "2014-05-10 23:27:22",
"monthlydownloads" : 1,
"owner" : "TwoTwo",
"rating" : "4",
"reports" : [ { "comment" : "I don't like this module after all. It sucks!",
"created" : "2014-05-11 00:32:30",
"modified" : "2014-05-11 00:32:37",
"outcome" : null,
"status" : "active"
} ],
"summary" : "This is the first test mod fixture around which user interfaction will be developed.",
"tags" : [ { "active" : "1",
"created" : "2014-05-11 00:22:43",
"tag" : "test"
} ],
"thumbnail" : "images/thumbnail.png",
"title" : "Two's Module",
"totaldownloads" : 1,
"version" : "1",
"watchlists" : [ { "created" : "2014-05-11 00:27:46",
"modified" : "2014-05-11 00:27:53",
"status" : "1"
} ]
},
{ "changelogs" : [ { "comment" : "This is the first release of a part for twotwo's module",
"created" : "2014-05-11 06:07:55",
"game_build" : null,
"game_major" : "0",
"game_minor" : "23",
"game_revision" : "5",
"modified" : "2014-05-11 06:08:08",
"project_build" : null,
"project_major" : "1",
"project_minor" : "0",
"project_revision" : null,
"public" : "1"
} ],
"comments" : [ ],
"contributors" : [ { "alias" : "2014-05-11 06:06:03",
"email" : "owner",
"password" : "2",
"status" : "2014-05-11 06:06:10",
"username" : "3"
} ],
"created" : "2014-05-11 04:53:48",
"dependencies" : [ { "created" : "2014-05-11 06:09:24",
"modified" : "2014-05-11 06:09:30"
} ],
"description" : "I cannot be bothered writing a long description for this module. Ha!\r\n\r\nOne thing to note, this module will have comments disabled.",
"downloads" : [ ],
"files" : [ { "attributes" : null,
"created" : "2014-05-11 04:58:01",
"format" : "zip",
"location" : "release/",
"mirror" : null,
"modified" : "2014-05-11 04:58:06",
"name" : "threes-mod.1.0",
"size" : "181"
},
{ "attributes" : { "height" : 2400,
"title" : "My Rocket",
"width" : 2400
},
"created" : "2014-05-11 04:58:06",
"format" : "png",
"location" : "images/",
"mirror" : null,
"modified" : "2014-05-11 04:58:06",
"name" : "banner",
"size" : "239256"
},
{ "attributes" : { "height" : 2400,
"title" : "My Rocket",
"width" : 2400
},
"created" : "2014-05-11 04:58:06",
"format" : "png",
"location" : "images/",
"mirror" : null,
"modified" : "2014-05-11 04:58:06",
"name" : "thumbnail",
"size" : "239256"
}
],
"followers" : 0,
"image" : "images/banner.png",
"key" : "threes-mod",
"modified" : "2014-05-11 04:53:52",
"monthlydownloads" : 0,
"owner" : "ThreeThree",
"rating" : "0",
"reports" : [ ],
"summary" : "This is a part file which uses Two's Module to work",
"tags" : [ { "active" : "1",
"created" : "2014-05-11 06:10:26",
"tag" : "rocket"
} ],
"thumbnail" : "images/thumbnail.png",
"title" : "Three's Module",
"totaldownloads" : 0,
"version" : "1",
"watchlists" : [ ]
}
],
"released" : [ { "changelogs" : [ { "comment" : "This is the first upload of the project. Like the project description field this will store formatting using BB which will be created in a tinyMCE UI applet.\r\n\r\n[U]format test[/U]\r\n\r\nIn the chagelog field, because this description can be long, there will be an accordian list of changes with a toggle to view this description. Cool.\r\n\r\nI'm thinking of making all project changelogs downloadable as a single file.",
"created" : "2014-05-10 23:33:15",
"game_build" : null,
"game_major" : "0",
"game_minor" : "23",
"game_revision" : "5",
"modified" : "2014-05-10 23:34:09",
"project_build" : null,
"project_major" : "1",
"project_minor" : "0",
"project_revision" : null,
"public" : "1"
},
{ "comment" : "This is an untested build by the new contributor",
"created" : "2014-05-11 02:58:01",
"game_build" : null,
"game_major" : "0",
"game_minor" : "23",
"game_revision" : "5",
"modified" : "2014-05-11 02:58:11",
"project_build" : "1",
"project_major" : "1",
"project_minor" : "0",
"project_revision" : "0",
"public" : "0"
}
],
"comments" : [ { "comment" : "This is a comment. Like all description fields this field uses BB code to store data formatting.\r\n\r\n[I] formatting test[/I]\r\n\r\nIn the script the actual comment is going to be reduced by an arbitrary amount. Maybe somewhere in the vicinity of 500 words, which would translate to about 8000chars.",
"created" : "2014-05-11 00:30:53",
"modified" : "2014-05-11 00:30:59"
} ],
"contributors" : [ { "alias" : "2014-05-11 02:35:09",
"email" : "owner",
"password" : "1",
"status" : "2014-05-11 02:35:09",
"username" : "2"
},
{ "alias" : "2014-05-11 02:47:56",
"email" : "developer",
"password" : "1",
"status" : "2014-05-11 02:48:04",
"username" : "3"
}
],
"created" : "2014-05-10 23:27:14",
"dependencies" : [ ],
"description" : "This is the first test mod fixture around which user interfaction will be developed.\r\n\r\n[B]title test[/B]\r\n\r\nThis description area is going to use BB tags to display the project description. This will allow users to format their description and include links, etc, directly into the description.\r\n\r\nThis field is a TEXT field so project owner's will get over 65000 characters to describe their module. A bit more than twitter.",
"downloads" : [ { "created" : "2014-05-11 00:34:03" } ],
"files" : [ { "attributes" : null,
"created" : "2014-05-11 00:17:03",
"format" : "zip",
"location" : "release/",
"mirror" : null,
"modified" : "2014-05-11 00:17:03",
"name" : "twos-mod.1.0",
"size" : "1"
},
{ "attributes" : null,
"created" : "2014-05-11 03:02:22",
"format" : "zip",
"location" : "builds/",
"mirror" : null,
"modified" : "2014-05-11 03:02:30",
"name" : "twos-mod.1.0.0.1",
"size" : "1"
},
{ "attributes" : { "height" : 2400,
"title" : "My Rocket",
"width" : 2400
},
"created" : "2014-05-11 04:42:27",
"format" : "png",
"location" : "images/",
"mirror" : null,
"modified" : "2014-05-11 04:42:32",
"name" : "banner",
"size" : "239256"
},
{ "attributes" : { "height" : 2400,
"title" : "My Rocket",
"width" : 2400
},
"created" : "2014-05-11 04:44:02",
"format" : "png",
"location" : "images/",
"mirror" : null,
"modified" : "2014-05-11 04:44:06",
"name" : "thumbnail",
"size" : "239256"
},
{ "attributes" : null,
"created" : "2014-05-11 04:48:04",
"format" : "txt",
"location" : "assets/",
"mirror" : null,
"modified" : "2014-05-11 04:48:09",
"name" : "readme",
"size" : "1287"
}
],
"followers" : 1,
"image" : "images/banner.png",
"key" : "twos-mod",
"modified" : "2014-05-10 23:27:22",
"monthlydownloads" : 1,
"owner" : "TwoTwo",
"rating" : "4",
"reports" : [ { "comment" : "I don't like this module after all. It sucks!",
"created" : "2014-05-11 00:32:30",
"modified" : "2014-05-11 00:32:37",
"outcome" : null,
"status" : "active"
} ],
"summary" : "This is the first test mod fixture around which user interfaction will be developed.",
"tags" : [ { "active" : "1",
"created" : "2014-05-11 00:22:43",
"tag" : "test"
} ],
"thumbnail" : "images/thumbnail.png",
"title" : "Two's Module",
"totaldownloads" : 1,
"version" : "1",
"watchlists" : [ { "created" : "2014-05-11 00:27:46",
"modified" : "2014-05-11 00:27:53",
"status" : "1"
} ]
} ],
"tags" : [ { "active" : "1",
"created" : "2014-05-11 00:22:43",
"tag" : "test"
},
{ "active" : "1",
"created" : "2014-05-11 06:10:26",
"tag" : "rocket"
}
],
"user" : [ ]
}

The main data sections are as follws:

  • categories: menu building data
  • downloaded: projects ranked by most downloaded
  • rated: projects ranked by highest rated downloaded
  • released: projects ranked by recently released downloaded
  • tags: all tags added to the system by project authors
  • users: data attached to logged in user

The categories, rated and downloaded follow the projects api template. Besides some formatting and security issues on this data, it's more or less the structure of the JSON for projects you will be dealing with when interfacing with the website.

----------

PS: I'd like to just say that I'm currently working very heavily on a rather large mod-pack/overhaul for KSP. Which I'm getting close to releasing an alpha for. So my time spent on this project and yours wont be 50/50, but I will pitch in as much as possible.

----------

I'm aware that modders here are working on their own projects on personal time and I very much appreciate any interest shown towards this project. I'll do what I can to help integrate solutions but, the initial discovery and planning phase is complete for v1.0 of this website. My priority is to get a working website up then come back to the modding community to find out more about their needs as stakeholders of the project.

Edited by O-Doc
Link to comment
Share on other sites

Just checking in here with bit of an update. We've got navigation built and transactions requests are moving smoothly through the application routing. The next step is adding interaction logic and interface panels. I good example is the module rating functionality. If you are not logged in then the button on any project summary panel is greyed out. If you are logged in then the button is colour and when you hover is highlights. When you click it an interaction panel opens out for you to choose a number of stars to rate the project with a confirm button to rate the project. The interactions will all be tablet/mobile friendly. And by tablet and mobile friendly, I mean, those interactions are designed around click events rather than opening up panels on mouseover and mouseout states.

So, there's a fair bit of interaction code to grind through. As all you web devs know it's simply a pure slog rather than any fancy coding. The app is performing well, all front pages are hooked up except for category browsing and search. Very tight, smooth performance, very nice. There's two initialisation animations I would love to be rocket themed but, I'm not touching for now in case a designer will put their hand up.

EDIT: I've got some design images posted on the OP of this thread to whet your appetites. :)

Edited by O-Doc
Link to comment
Share on other sites

You most certainly can! We still need someone to get some drafts of the content pages together. About Us, FAQ, and Submission Guidelines. Do you think you could wrangle some of the project documentation together into something we can eyeball for these content pages?

Link to comment
Share on other sites

I started typing up a FAQ page. All I have is the big one though. I think I'll have to see at least some of the website before I can guess what questions new users will have.

https://docs.google.com/document/d/11RB_YomUn5kEH3Gb7yarXQh1QLBuDmNX8GcD6m7khp4/edit?usp=docslist_api

Edit:

Also typed up a quick about us

https://docs.google.com/document/d/11dVkm6-OBFCb4tso3fmMH1ZTJapzYZfYBbEXAluz-78/edit

Edited by robopilot99
Link to comment
Share on other sites

There project documents are inside the GitHUb repo. There's also documents which can be found on the other Majiir challenge thread. Most of that stuff already done is the about us, privacy policy and terms of use pages. So, go check out out the GitHub repo(in the doucments folder) and wiki for more information.

At this stage, I'm looking for drafts not finished documents. So, it's mostly about wrangling everyone's contributions into a single working doc for each page which we will continue to flesh out as we go along.

Re: FAQ, just come up with a whole bunch of questions about the website. This will help you write the about us page. Then,throw those question my way and I will write out the answers. You should explore questions like copyright issues, resolving spam comments/moderation, upload file size, wait times, etc, etc. Get creative, be inquiring.

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...