How multiple developers can work on a single Moodle project? - php

I am new to software development, working on creating a Moodle LMS project. I have already installed XAMPP and working on Moodle. But I have another 5 team members working on the same Moodle project.
As XAMPP is installed on everyone's computer, we are working separately. But I want to know how all we 6 developers can work in a team to develop a project. How can I go for making the network configurations? Do I need to share the XAMPP folder to all other team members in to work as a team?

As Moodle already uses git for core development, that would certainly be your best bet for coordinating the code between multiple developers. See https://docs.moodle.org/dev/Git_for_developers for more details (although that is a bit more focussed on contributing back patches to Moodle core).
Sharing the data is more difficult, but in my experience it usually works OK for each developer to work with their own Moodle install, with a central install for testing (and make sure each developer uses the xmldb editor to define install.xml + upgrade.php steps, so that the other developers can pull the latest code from them and the database definitions will be upgraded properly).

Use any flavor of source distributed version control system, like git or subversion.

Related

Adding A Moodle Project to Source Control

I'm not a php nor moodle developer. I worked as a python developer for many years and now work as a devops eng.
One of my clients uses the moodle framework for their site with no source control. I've spoken with their lead developer and he insists there's no way to have a moodle repo without the entire directory structure in the repository, that is all the auth, admin, backup, badges, etc directories, since many files in those directories have been touched by their development team
I did a file count and it's over 50K files, which is insane for a code repo.
Has anyone managed to solve this problem for a moodle site before? Specifically a clean CI process using source control?
I have been through a similar process on several occasions. Your best bet is to clone a clean copy of Moodle from the github repo. Then look at the version.php file on the client site to identify the exact version they are using. Next checkout that same version in the clean copy (use gitk to search for that version number). Finally copy across the code from the client site and then the standard git commands should allow you to audit what has changed and commit it in sensible steps.
Once cleaned up, keep all the changes in a branch.

How do I set up environment to use a bootstrap theme together with PHP backend?

I'm on a Chromebook using Crouton, running Lubuntu 14.04 LXDE.
I have full access to PHPStorm and will use it as my IDE.
Basically, I wish to use the bootstrap admin 2 theme together with a PHP backend framework that's light and simple. What framework should I use?
What should I install to get my environment working and get a local server running?
I have only small experience with Django for web development, and it was all handled from that framework itself. I have zero clue how to get this up with a PHP framework :/
Note that I do not have root access(Chrome OS running) and cannot create a new user/Environment from it..
In my experience, light and simple don't exist, everything
requires some sort of education, whether its with help or doing it yourself.
With that said, Chromebook is for internet use, it really can't run the applications your looking for on a local environment such as WAMP without some hacks most likely. I would recommend you purchase Shared Hosting or a VPS, something cheap like $20 or $30 bucks a month and start building on a LAMP stack.
Bootstrap and PHP are really separate entities that should be learned on their own, but if it helps check this out Which PHP framework with Twitter Bootstrap

Integrated development using subversion for PHP

We are two in a team working on the same project. i am on MAC and the other one is on PC. i have never used SVN before. googling about the SVN gave me basic understanding about svn. and what i understood is there should be subversion installed in client machine (i do not know which client, i assume there are many like versions and cornerstone for mac, tortoise for windows etc. and i require a repository where i will host the centralized version of the application. the client will get the copy of codes or files where they can commit the changes to repository (main application). which can be undone if required. however what i don't understand is, as our PHP code uses database(mysql in my case) how is it managed by SVN client?
lastly i expect my development environment to be implemented the following way.
i want to set up my mac as development server for SVN at the same
time i would like to work in the same machine making use of SVN.
PC should access the repository from MAC and commit the changes.
all the setup should be done and implemented locally via LAN. please correct me if i am wrong on my understanding about the svn and also do guide me about the requirements and resources i need to install in both the machine for me to get going using SVN for my projects.
thank you..
You can use your Mac both for hosting your SVN repository and also use it as the client to checkout your working copy. Have a look at this link (its slightly old but you'll get the gist).
Once you have the SVN repository setup you can enable HTTP access on it so that your partner can checkout the copy and commit changes to it. Have a look here on how to enable HTTP access for your repository.
Most modern day PHP Frameworks use migrations scripts that help in building and maintaining your database schema, if possible use a framework. Have a look at the migrations script of one of the frameworks for inspiration (i.e if you can't use a framework). Migration scripts under the hood fire create table or alter table commands, and all you do is add the migration files to your SVN repository to version control your database schema.
One caveat with hosting the SVN repository on your Mac is that for some reason if its down, your partner gets stuck as code changes can't be committed and new changes can't be checked out. Have a look at this thread for free online private SVN repositories. In case you want to go the paid route GitHub.com is awesome.
I develop on my own and use a repository hosted on http://www.springloops.com. On here I just export the database to a text file and keep historic changes to the database on there. Clearly this is not suitable for a team working together on a project unless you're well coordinated in recording your database changes.
This question looks useful MySQL Version Control - Subversion though it's specific to mysql subversioning - not quite the answer to your broader question.
Each machine should have the relevant Client software, I recommend Tortoise SVN for Windows - it's pretty popular. There is bound to be a similar alternative SVN Client for OSX that you can get your hands on.

php, zend debugging, svn setup for many developers

I'm trying to create an environment for many users to develop many php projects on.
I've installed Zend server community edition on a Windows 2003 server.
I've shared the apache/htdocs folder.
Each user has a their own folder in htdocs, say:
/htdocs/bob/
/htdocs/sarah/
/htdocs/michael/
...
With the projects they are working on in their folder, say:
/bob/accountingSoftware/
/bob/eCommerceSite/
/bob/newCMS/
...
Within that project folder they will have an svn checkout, say:
/accountingSoftware/trunk/
/accountingSoftware/tag/
/accountingSoftware/branch/
This works well, however svn is now incredibly slow because it's working on a network drive. Can anyone suggest a solution to this?
I'm planning on getting each developer to use Eclipse, and take advantage of the Zend server debugging features. But I'm not clear on how to do this, is my setup appropriate for this?
I'm only testing this setup with a few developers at the moment, so I'd prefer to make any big structural changes/improvements now.
I'd appreciate any comments or suggestions.
Thanks in advance.
I would recommend installing a local Zend server on each developer's computer and have your shared server be running the current trunk code.
This allows each developer to restart the server when they need, and allows them to work locally and not worry about a network drive.
It also allows you to have a shared location where the latest code from everyone can be run without worrying about partially completed changes from each user.
If you try to have all your developers working on a single server, you will always have some number of developers that you cannot support. By having everyone work locally, you can have as many developers as you need.

Expressionengine 2 and git (version control)

I’m looking to move over to using git to make my EE development a lot easier and more manageable. I’m already aware of the guides posted on devotee and a few othersites but after scanning over them they seem a little old and seem to be specifically for ee 1.x, I was wondering if anyone had been successful with ee 2. I’ve only recently made the transition from svn to git, previously I found that using ee via svn was a ballache, so many confit conflicts, wrong urls, and all versions of the site were using the same database. I’m basically looking for the best or should I say the ideal way to setup both git and ee to work in harmony together. I’d like to also learn how to branch other sites I develop with ee from this too, if anyone has experience with this that’d be great!
Also if it’s any use I’m hosted by dreamhost, As far as I understand they support git, I’ve looked over their knowledge base on how best to set things up, would anyone reccomend their way of doing things? And has anyone had a successful experience whilst doing so? 
I look forward to hearing your responses!
Thanks
Sent from my iPhone, whilst falling asleep so excuse the possible typos!a
Check out Gititon
My flow is as follows.
I've installed git on my local machine. (via macports)
Git Server: for me
that's Beanstalk (http://www.beanstalkapp.com),
In the presentation from the above link,
you'll see that Github (http://www.github.com) is in between
the local git and Beanstalk. But for
me, that's kinda an overhead,
because I'm the only developer for
the moment, maybe I'll add it later.
Advantage: with beanstalk you can deploy via (s)ftp to a staging or production server. You don't need to install git on your hosting solution.
Hope it helps!

Categories