Jump to content

Is PW a good choice for this?


Recommended Posts

Hello all,

I haven't been around for quite a while, but I'm still trying developing stuff for my classrooms (I'm an English teacher) and this time I'm a little stuck even before starting... Let me explain :

I've used ProcessWire for my English site (FLEnglish : http://flenglish.tuxfamily.org - if you're curious) and I just loved it (not my site, ProcessWire ;-), and I appreciated the community help a lot)

So here I am again with a 'new' project and my questions : I'd like to implement some kind of RPG Game (in the style of HabitRPG)
for the language classroom. Actually, it's a lot easier than HabitRPG since I'm interested mainly in managing the score part of the game. I'd like the kids to have a character (no images for the moment, just a name), and scores for Health Points, Experience, Level, Gold Coins) and according to their achievements in class, the scores improve and so on.
The idea is that I'd need a tool quite handy to manage because I have many pupils in classes and no time in class to manage all this.

Let's see an example : All kids did their homework. They all get +3 experience and 5 gold coins. I don't want to spend 10 minutes going over each pupil's name and adding their numbers...

I thought of the Skyscrapers demo site for a start : yes, I could manage students this way, having field for XP, HP, GC and so on (this is what I started doing actually). But then,I can't manage pupils' results 1 by 1 going through the Admin page in PW. So I thought of using Javascript to avoid having to validate a page on which I would have 120 fields to update according to the task succeeded.
That's when I started thinking trying to continue learning AngularJS, but I was unable to make it work along with PW... (I get a 403 error
when routing to the view template_ I put everything in  /site directory, maybe that's not a good way).

Anyway, this is quite a mess in my head at this time even though I would like to try and do something this way. If anyone here could give me a possible thought about this to give it a start : could PW be useful for such a task? To be honest, I would love to use PW for this since I would like to be able to merge this score thing with my site already using PW (and why not imagine 'users' being able to log in to see their scores and so on...?)

I'm afraid I'm being extremely complicated on that. Let me rephrase it :

- Could I have such a system for scores management using PW ?

- Could I have a user interface quite handy to update scores easily using PW?


In brief, what do you think?


I hope reading this was not too much of a burden.

Thanks for your help!



  • Like 3
Link to comment
Share on other sites

I think built basic structure first - then it is easy to add "power features" like "give +3 exp for all pupils" etc.

You don't need angular to do this (it would be neat though). There are lots of options. But you have much better changes to actually start getting this real if you build something simple now and add features as you go. Trying to achieve everything from beginning hits the wall hard :)

I love the idea and I am happy to help you when you get into more specific questions. I wish all the teachers would code their tools!

Link to comment
Share on other sites

I think that PW would be a great fit for this.  Obviously you're thinking about the big picture - which is great so that you know what kind of structure makes the most sense even if you start with only a part of it and add features as you go, like apeisa said.

I saw a post yesterday about using HandsOnTable with Processwire and it seems like it can solve the issue with needing to add/delete points efficiently: http://processwire.com/talk/topic/4147-excel-like-crud-in-pw-using-handsontable/

Watching the screencast helps to show the power behind it.

Your project sounds great and I'm sure your students will love it!

  • Like 1
Link to comment
Share on other sites

Hi there,

Thanks a lot for your answers and your encouraging words! I appreciate a lot.

Now, I agree I have to start very small and simple and then build on top of that. That's why I got in touch with you, actually, because I was unable to figure out how to start with PW, and possibly JS to make things more 'dynamic'. From what I see so far, I should forget about JS (or at least not worry about it for the moment) and start digging about my page structure with PW.

So far, my first tests lead me to the following simple structure :


  - Players

    - Player 01

    - Player 02

    - ...

  - All Players

The 'player' template has the fields : title,team,XP, Lvl, GC, HP. And I filled the values 'by hand' to make an initial state ('title' is the name of the pupil, 'team' is the class, 50 Health Points, 0 Experience, Level 01, 0 Gold Coins).

The 'All Players' page allows me to have a list and see the different scores on 1 page.

At first, I just thought about being able to update things from this 'All Players' page by checking the names of the players involved and selecting some kind of 'rewards' from a list. Then, I thought it wouldn't be good to display a unique form with about 30 players (1 class) _checkboxes_ with 4 input fields each (like a table) and 1 select to choose the 'task' type which would trigger the score changes. (That's why I started thinking JS...). I just imagined I would have trouble recording things for each player if I have only 1 form.

The thing is :

- I'd like to keep some kind of freedom about points (manually change something for 1 player) so an input field sounds good.

- I could then have a submit button to save all changes (but I guess I would re-save everything since I wouldn't know only 1 field changed).

- I thought about updating scores onSelect-ing the rewards (JS) so the kids could see the impact right away, even before submitting the form. [Now I guess I'll bother with that later ;-)]

- I imagine the list of tasks could be built in PW Admin interface under a new page 'Tasks'. For example the task 'Homework' could have fields such as 'XP Gain' '3', 'GC Gain' '5'... so I can add different tasks little by little. Writing this, I see another problem : some tasks are positive when done, or negative when not done... Should I make a list like 'Homework', 'No Homework'... But what do I do with 'Class Participation' in which I have 4 levels : Very bad, Bad, Good , Very Good : 4 different tasks?

So the 'final' simple structure would be :


  - Players

    - Player 01 [title(name), XP(0), HP(100), Lvl(1), GC(0), Team(class)]

    - Player 02 [title(name), XP(0), HP(100), Lvl(1), GC(0), Team(class)]

    - ...

  - All Players

  - Tasks

    - Homework [title, XP Gain(3), GC Gain(5)]

    - No Homework [title, HP Loss(5)]

    - Very Good Class Participation [title, XP Gain(3),GC Gain(3)]

    - Good Class Participation [title, XP Gain(2),GC Gain(1)]

    - Bad Class Participation [title, HP Loss(3)]

    - Very Bad Class Participation [title, HP Loss(5)]

    - ...

My main problem is that I tend to see the final product even though I want to stay very simple at the beginning, but this prevents me from starting because I keep wondering what is best. I'm always scared of heading the wrong direction right from the beginning. (I'd like to keep a history for each player because it's not just a game, it would be useful to analyse the 'Homework' task with the student and the parents... _ but that' would be for LATER, of course)

I'd love it to be scalable, but I'm not sure I'm ABLE to think of it as scalable!

Anyway, I hope I don't bother you with my long post about how I see my project. Maybe I should just dive in and ask you more specific questions when I'm stuck. But I do think organisation and structure are very important and represent the foundation and you know what happens if you build on sand...

So I'll start how I've just described it to you, but please, feel free of interfering and giving advice if you see me heading in a wrong direction ;-)

Thanks in advance.

Link to comment
Share on other sites

Hi celfred,

I assume the "All Players" page is dynamically displaying all the different scores via its template file which pulls the results from the individual players' pages? In other words, I am hoping you are not individually editing those scores by hand in "All Players" page. Hope this makes sense. I'll try to comment on your other issues later...

Link to comment
Share on other sites

Hi kongondo,

Yes, The 'All Players' page pulls the scores from each player's page to display the scores.

But then, I think I'll make it possible to edit the scores on the same 'All Players' page because I don't want having to go through each player's page in the Admin Panel to edit individually the scores. I think of checkboxes on the All Players page to be able to select multiple players at once.

And by submitting the new All Players page, I would update each player's pages.

For the moment, I can't think of another way of managing all theses scores.

I'll keep you updated about my progress...

Link to comment
Share on other sites

Few things: you probably don't need "All players" page at all - why not use "Players" page for that information?

So what you need is way to update one player or multiple player with same task. One thing to note:

- I would add one more level under player. Let's call that template "event". Event could be something like "8.9.2013 14:50 player accomplished task 3". Which would go under certain player(s). That way you can have history how and when player has done something. Those events doesn't have to be tied to tasks, this way you get freedom to add custom events, like "Tom did great job helping others today. +5exp". These events would always add or substract to players stats.

  • Like 1
Link to comment
Share on other sites

Right about the useless 'All Players'. I got rid of it and displayed the stats on the 'Players' page. Thanks.

Great idea about the 'event' template ! I'll dig this a little and keep you informed. And you understood perfectly the need of having freedom and being able to add vustom information ;-)


Link to comment
Share on other sites

@apeisa (or others)

I've tried doing something with 'event' template for history. It works fine for my purpose right now but I'm still wondering something about scalability. Should I add a new 'event' page (child of 'player' page) each time a player does something or should I have only 1 'events' page and I append to this page? In the first case, I'll end up having like 500 pages by players. Is this a problem? In the 2nd case, I would have only 1 page with either many fields (or 1 big text field, like a log file?) Which would be best?

Keep in mind that eventually, I'll try to manage history so I can see how a player does on 1 particular task (let's say, for example, 'No homework' or 'No copybook', useful information for parents' meeting) and for now, I feel like the 1st solution would be better to handle this kind of sorting...

Link to comment
Share on other sites

I would probably go with events under player page. There are merits for both: if you have one "events" root, and then relation to each player, then you get less pages when same event is for multiple players. But I think that is less flexible way: I would imagine scenarios, where you want to edit and "personalize" some events, even when you add them to all players.

I don't think scalability will be an issue here. You can easily handle thousands of events for each person. 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Create New...