Final Year Project Help

Final Year Project Help

by David Hodowany -
Number of replies: 6

Hi all

I'm totally new to Moodle platform development, not the platform itself as I have been using it for the last 3 and some years. A few unforeseen factors have contributed to the fact that first I'm doing my FYP on Moodle and second I'm doing it late so right about now starting to feel the pressure. As I've managed to catch up on some of the ongoing projects as my FYP is one of the four ongoing assignments I can spend the next two weeks working solely on the one based on Moodle. Despite the fact that I have been so far researching the documentation available on-line I am also giving it the initial go and post this on forum in hopes that there are some of the community members out there available to help out and shed some light on the where to start it and how to do it. The subject of my FYP is to create a mobile app for the Android environment based on Moodle platform or in other words create Moodle Mobile app for Android devices with additional data visualization and server push notification functionality. The actual app is going to be fairly simple as my supervisor is more interested in the data visualization aspect and how I handle Moodle API implementation. To begin with I'm planning on creating my app locally on  my laptop using APACHE and MySQL (MariaDB) but in the end I want to move the server to remote location using Amazon Web Services. I will appreciate any help or "hand holding" through-out this project as it is firstly the most important project in my career so far, and secondly I'd love to get better at understanding and improving my skills with PHP. I also believe that by doing so I might be able to start some sort of a trend for the future Moodle contributors where they can start their initial training and understanding of Moodle by developing projects using the platform while being lead by the actual Moodle developers. I also hope that this topic will help any other students who end up working with Moodle. Kind Regards, David

Average of ratings: -
In reply to David Hodowany

Re: Final Year Project Help

by Richard Oelmann -
Picture of Core developers Picture of Plugin developers Picture of Testers

There are any number of forum posts and discussions on here around the 'where do I start' type questions - I suspect you are going to have to ask something a bit more specific. You are also going to have to show what you have researched and found out in trying to help yourself - 'Ive tried xyz and looked up to find abc, but I cant get def to work, please advise'.

You'll probably have to give more details about what you want to do as well - there is already a Moodle Mobile app, with push notifications, although the data visualisation element will depend on what data you want to show. There is also a GSOC project that Moodle has been involved with since 2006, so I'm really not sure there's any trend to start!


In reply to David Hodowany

Re: Final Year Project Help

by Tim Hunt -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers

"The subject of my FYP is to create a mobile app for the Android "

There already is a mobile app for android. I think you should start by downloading and building that, and then add your functionality to it. No point reinventing the wheel.

"my supervisor is more interested in the data visualization aspect"

Good. This sounds like the interesting bit.

If you are making a mobile app, where do Apache and MySQL come in?

In reply to David Hodowany

Re: Final Year Project Help

by Marcus Green -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Plugin developers Picture of Testers

Your question is unclear and hard to follow. If you have only two weeks you will not be able to do much and if your aim is to do something with Mobile, Apache and MySQL are of only marginal relevance. 

One thing you could do is explore creating a mobile version of a plugin that is currently browser only. This way much of the functionality is already available via PHP and the mobile code wraps it and presents it within the mobile app. If you did this you would gain valuable understanding of important industry wide technologies such as angular.



Average of ratings: Useful (2)
In reply to David Hodowany

Re: Final Year Project Help

by David Hodowany -

Hi

Apologies for the late replay as a few deadlines have changed and I had to work on my other project. 

My plan was to develop a simple log-in web page for a student. After the successful log-in another web page with a few buttons comes-up, each button related exclusively to a well-defined Moodle functionality such as view calendar, view grades, etc. Nothing else is displayed as the idea to make it fast and simplified, so each student gets access only to the vital information. It is more of a mobile web app, where once the user click on the app icon, a browser gets called with the log-in form. I'm sorry if I wasn't clear enough with my previous post.

I have done some researching and now have a better understanding of how Moodle works. My initial idea was to setup Moodle on my local computer and see if I can get anything working as I'm more familiar with the static setup using the XAMPP package. I have already worked with the APACHE web server, and MySQL RDBMS previously so it seemed like a good start. I'm also used to phpMyAdmin tool and this was my first step to implement a new plug-in within my installation. As far as I understand there are two different types of plug-ins used with Moodle. phpMyAdmin comes as a local one. Unfortunately, after upgrading to a new version, although the link is available in the Site Administration->Server view, it comes up empty after I click on it (http://localhost/local/phpmyadmin/). I'm also using NetBeans IDE where I've created my php log-in webpage and now want to populate my database with students. How do I do it using the predefined Moodle tables? What of the roles assigned to each user? Do I need to create my own validation method or should I reuse one of the plug-ins?

Thank you and regards

David Hodowany

In reply to David Hodowany

Re: Final Year Project Help

by Howard Miller -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers

What does any of this have to do with creating an Android app (like you said you were doing in the first post)?

You seem very confused but you really just seem to be having problems getting Moodle to install/run. That's a bit of a bad start but not insurmountable. 

There are loads of different plugin types in Moodle but all are very similar in basic architecture. 

Moodle has quite a rich API (in the lib/ folder) and you can achieve a lot without writing your own anything. The roles stuff is all done in lib/accesslib.php (and quite well commented). For authentication you should look at the existing code in login/index.php and the various plugins in the auth/ directory. 

I think perhaps using PHPMyAdmin in Moodle is making things complicated for yourself. You can get a bunch of desktop managers for MySQL which are all easier to use or just use the command-line interface that comes with MySQL.

In reply to Howard Miller

Re: Final Year Project Help

by David Hodowany -

Hi

Yes I am confused. It's taking its time as this is the first time I have anything to do with Moodle. Some students from my year were advising me to stay away from it. Going back 4 years, there are no projects based on Moodle to look at to at all. Besides other projects are taking its time too. I'm posting this in hopes that it will speed up the process, if I had more time to figure it out I wouldn't be bothering you with all the questions. That was the initial plan, to get maybe a set of steps to follow since going through the whole Moodle library will take some time.


I've got my app working now but its using its own local database. I can create admins, users (students, teachers) and each role has its own access rights within its domain. I have come across this idea of deep linking that is supported by Moodle. I'm looking it it now.


Regards

David