Planning application features and functions

Our main intention for building this application is to learn how WordPress can be adapted to advanced web application development. Therefore, we will be considering various small requirements, rather than covering all aspects of a similar system. Each of the functionalities will be focused on explaining various modules in web applications and the approach of WordPress in building similar functionality.

Let's consider the following list of functions, which we will be developing throughout this book:

  • Forum user profile management: Users who register for forums will have a profile where they can edit personal details and view their forum topic details without going into the forum.
  • Forums and Topics management: The application provides the ability to create forums and topics under these forums. Admin staff will be responsible for creating and closing forum tickets while users will have the ability to create their own tickets.
  • Frontend login and registration: Typically, web applications contain the login and registration in the frontend, whereas WordPress provides it in the admin area. Therefore, custom implementation of login and registration will be implemented in the application frontend with the support of social login.
  • Manage forum topic permissions: Various features will be developed to provide restrictions to forum and topic features for different user levels.
  • Joining a Forum: Users will have features to join a forum and admins will have features to approve/reject user requests.
  • Settings panel: A comprehensive settings panel will be developed for administrators to configure general application settings from the backend.
  • REST API: A large number of popular web applications come up with a fully functional API to allow access to third-party applications. In this application, we will be developing a simple API to access the developer details and activities from external sources.
  • Notification service: A simple notification service will be developed to manage e-mail notifications on new topics in forums and responses to subscribed topics in forums.
  • Responsive design: With the increase of mobile devices for Internet browsing, more and more applications are converting their apps to suit various devices. So, we will be targeting different devices for a fully responsive design from the beginning of the development process.
  • Third-party libraries: Throughout the book, we will be creating functionalities such as OpenAuth login, RSS feed generation, and template management to understand the use of third-party libraries in WordPress.

While these are our main functionalities, we will also develop small features and components on top of them to explain the major aspects of web development.

If you are still not convinced, you can take a look at the various types of WordPress powered web applications at http://www.innovativephp.com/demo/packt/wordpress_applications.