I'm trying to determine whether drupal is suitable for my next project. I understand what drupal does, and I'd like to know if it's possible to get my project running without too much development effort.
The project is a simple online application to help students practice speaking English. Features are:
- Basic form: A collection of prerecorded questions for students to answer.
- Questions are in a variety of topics, and are organized in 3 types.
- Each question will have transcript text, audio recording, hideable hints, and other meta data.
- For a topic of questions, the application is responsible for randomly choosing a few questions from the topic collection and present them in a specific order.(Though random, application should be able to record whether a certain question has been practiced, and use this information to decide further random results, the goal is to practice as much number of questions as possible, not to practice a single one many times)
- Students may choose to browse limited free content without registration.
- Students may enjoy the capability of tracking progress, making notes, marking difficulty, see more free content by registering.
- Students may choose to view questions by certain criteria, such as their own difficulty rating, or notes.
- Students may choose to purchase extra premium content (questions).
- Application will expand to other fields of English practice.
- It's very likely a future mobile app will use this application to serve contents in a similar way.
On top of my head, I see that 'question' can be put into 'article', while tags can be used to organize ‘question types' and 'topic'. Students' notes or progress can be tracked using 'comments', not sure if 'comments' can be configured to be visible only to the commenter. A practice session can use 'views' to target a series of questions.
But it seems that a lot of work need to be done to put those things together. I'm wondering whether drupal is suitable for such an application. And what module configuration is required, and what development effort is required? Am I going to run into trouble for custom development when a new release of drupal becomes available?