As many of you know, I have recently emigrated to Australia from London, and the last few months have been extremely busy for me. I am now set up again and working, and it's time for an update on what you can expect in the future from the Smart-Thinker Product Suite. This is not a complete list, but just some of the bigger features I have planned. Please comment on the Forum here so we can discuss anything you may wish to discuss.
Ok, here are some of the updates I have planned:
At the moment I am working on the new Event module. I have moved the standard Location features (Home/Online) into Events with the Street/City/Country format. This means all the modules handle locations in the same way and it will be easier to abstract this into a location module at some point in the future. It also makes it much easier to integrate with the Google Maps module (ie. To plot Groups/Events).
I am going to release that in the next few days then immediately start work on the next version (I have made some big SQL changes hence I want to release it in steps to minimize risk). The next version will have a template Detail page – so you can customize the look of the detail page for each instance (great for a scaled down view on the homepage or to make it look more like Upcoming.org etc.) This is a big job and I am not sure how long it will take. I also want to add the “Add to Event” functionality so that you can click on any user profile and invite that user to your events. The last big feature I want to add is Event caching, so you can configure it to cache the event data for a set amount of time – this is useful on a site like PokerDIY where a lot of people come to RSVP at once and the DB gets hit hundreds of time in a short time – the caching will be configurable of course.
So that’s what I am working on in the short term. Longer term, I want to implement Templating in the Group Detail view too. I also need to advance the Templating system a bit to handle things like URLs (do not show if blank, open in new window etc.) so I am speccing out a template function system which will be applied to all modules. This is going to take some time but will clean up a lot of problems and make the templates more flexible.
Medium Term
A feature request that I will be working on after the events module is to restrict the profile list views by role. This will allow you to create a public role called “Show My Profile” and you can then only show profiles that have this set to true. There are a number of other uses for it.
A big feature I want to work on as soon as possible is a “Wall” type control that I can add to all modules. It will be based directly on Facebook’s Wall implementation and will allow collaboration at Event, Group and User level. It is not intended to replace the Forums module, so it will remain as basic as the core version on Facebook. You will be able to post Wall comments against Groups, Events and Users, so it will greatly enhance the modules and allow the collaboration that is needed to make these modules a lot more useful! I could then look at building a rating system into the wall control as well so all modules will benefit from that. Again, this is a massive job and will take a long time to complete. I have yet to spec it out.
Another problem I want to solve is the business of Lists at Portal level. I feel a little neglected by the core as I assumed you would be able to maintain lists for each portal, which my module consumes. I will either provide a simple UI at Portal Level or a way of using Lists in each Portal. I do not know how complex this is but it is wanted by a lot of people.
Another idea that occurred to me is that with the UserPerms (introduced into the core a version or 2 ago), I could resurrect the HomePage module POSSIBLY and make it as secure as I wanted to from the start. It would function almost identically and I could not advance it much, but I could possibly have a non-hacky, stable version of it up and running in under a week. I need to know if anyone would use this module (I can’t afford to extend this module much, so it would need to be useful as-is).
I have 10001 To Do items for each module (a lot of them gleaned from the Forums here or Requests) – I mainly want to focus on the User Experience – AJAX and polishing off the modules to make them easier to use and less DNN-like. For example, in the current event version I am working on now you can now “Edit Event” and “Invite Users” from the event detail page, which you could not do before.
I also want to make use of RSS more (Groups and new Users).
Long Term view
I have always wanted to integrate the Events module with a Forms module so that you can define event fields and extend them ad infinitum. This would give you complete control over what your event editing looked like. Coupled with Event Templating it would make the Event system very useful. Unfortunately this is a complete redesign and will take many weeks, if not months.
I want to implement PayPal payments in Events as well as recurring events. These are both big tasks and recurring events will require quite a few backend changes.
I want to add a lot more views to all of the modules – for example, I want to add “My Events” to the UserProfile module, so you can see the events that a user has been too or is subscribed to on their profile. I also want to improve the searching on all modules – for example, you should be able to search on events by location etc. A nice view on the UserProfile module would be a “People with the same interests as me” or “People who live near me” feature. One of the many nice features of FB is the “Groups like this” which would be a nice view for the Groups module.
I would like to look at integrating Facebook with some of the modules. For example, you could have an option “Invite my Facebook Friends” on an Event or Group – it would pull your contacts from FB and send them an invite.
Enhance Social Networking features – I keep an eye on MySpace/FB etc. to see what would be good in DNN
Better integration with Google Maps for all modules
Unfortunately I have an endless list of To Do items for all modules and more are raised all the time - I have to be realistic in what I can commit to. As I have mentioned in the forums, I do not find DNN Development to be rewarding enough to do it full time (well done to those who do!), so I have to spend my time on other interests to ensure I can remain self-employed. This means less time to work on the modules than I would like. One of the big initiatives I want to work on is a way of allowing key feature requests to be “bought” by customers who require it. I get a lot of requests to edit the modules on a contracting basis and I usually have to refuse them due to time constraints. I want to streamline this process so that anyone can purchase a feature request and bring it to the top of the priority queue. I can only agree to requests that benefit all customers, and we have to agree on the deliverables/spec befor- hand. I think this will benefit everyone, and the modules can be advanced at a faster rate, whilst retaining the quality. Please contact me if you would like to discuss a paid-for feature-request.