Difference between revisions of "Projects"

From ProgClub
Jump to: navigation, search
(→‎Projects: Completing pcforever...)
 
(42 intermediate revisions by the same user not shown)
Line 1: Line 1:
__NOTITLE__
+
This page provides information about ProgClub's free software computer programming and systems administration projects. See [[TODO]] for ideas about what to work on. For information about ProgClub domains, see [[Domains]]. For information about member services, see [[Services]]. For information about hosts on the ProgClub network, see [[Machines]]. Check out our [[Forums]] to get in touch.
This page provides information about ProgClub's open-source computer programming and systems administration projects. For information about ProgClub domains, see [[Domains]]. For information about member services, see [[Services]]. For information about hosts on the ProgClub network, see [[Machines]]. Check out our [[Forums]] to get in touch.
+
 
 +
= Looking for something to do? =
 +
 
 +
If you're looking for something to do you can browse our projects below, or there's a section on the website: [[TODO]]. The TODO section is there to give you a few ideas about things that it would be nice to get done. It's not comprehensive. If you have ideas feel free to make a note of them.
 +
 
 +
= Starting a ProgClub project =
 +
 
 +
If you want to start a project, then: give the project a name, reference the project from this page (put it in the [[#Active_projects|active projects]] or [[#Prospective_projects|prospective projects]] section as appropriate) and copy the [https://www.progclub.org/wiki/mediawiki/index.php?title=Project_template&action=edit project template] to get you started. You might also like to know about how to [[Subversion#Creating_new_projects|create your project in pcrepo]].
 +
 
 +
You should know that we have a spec concerning [[versioning]] of our projects.
 +
 
 +
There are some handy notes in [https://blog.gitguardian.com/safely-open-source-software-best-practices/ How to safely open-source internal software - Some best practices].
  
 
= Software configuration management =
 
= Software configuration management =
Line 12: Line 23:
 
Current ProgClub projects are:
 
Current ProgClub projects are:
  
 +
* [[Mudball]], [[User:John|John]]'s web framework/toolkit.
 +
* [[Hostsgen]], for generating /etc/hosts files for replaced hosts.
 +
* [[Bugslist]], the ProgClub TODO thingo.
 +
* [[Svnman]], the ProgClub Subversion project management utility.
 +
* [[Text tables (TTB)]], the ProgClub structured data format.
 +
* [[PcLog]], the ProgClub event logger.
 +
* [[PHPBOM]], the PHP Ball Of Mud (a PHP web-framework and toolkit).
 +
* [[x2maths.web]], a maths website.
 +
* [[Migration 2016]], a sysadmin project to upgrade the ProgClub infrastructure.
 +
* [[ProgClub.js]], for ProgClub standard JavaScript formatting.
 +
* [[Pcformcheck]], for validating/testing your HTML forms.
 +
* [[Pchtmlcheck]], for validating your HTML.
 
* [[Pccipher firefox addon]], for Firefox crypto fun.
 
* [[Pccipher firefox addon]], for Firefox crypto fun.
* [[Psweb]], for personalserver.com.
 
 
* [[Pcwebstats]], to collect HTTP stats.
 
* [[Pcwebstats]], to collect HTTP stats.
 
* [[Pcsvnrelease]], to provide version and release management for projects.
 
* [[Pcsvnrelease]], to provide version and release management for projects.
Line 19: Line 41:
 
* [[Slib]], to provide the PHP framework for Sgen. Sgen is a Blackbrick product.
 
* [[Slib]], to provide the PHP framework for Sgen. Sgen is a Blackbrick product.
 
* [[Pcad]], to provide a daemon that can be asked to do things on behalf of non-privileged users.
 
* [[Pcad]], to provide a daemon that can be asked to do things on behalf of non-privileged users.
* [[Jsphp]], to provide PHP functions in Javascript.
+
* [[JsPHP]], to provide PHP functions in Javascript.
* [[Pcphpjs]], to provide the CMS for [[Jsphp]].
+
* [[Pcphpjs]], to provide the CMS for [[JsPHP]].
 
* [[Pcmnet]], to provide MemberNet and MobileNet.
 
* [[Pcmnet]], to provide MemberNet and MobileNet.
 
* [[Pcwiki]], to provide the ProgClub wiki.
 
* [[Pcwiki]], to provide the ProgClub wiki.
 
* [[Network administration]], to provide network services.
 
* [[Network administration]], to provide network services.
 +
 +
== Other projects ==
 +
 +
Projects that ProgClub are helping with that are not ProgClub projects:
 +
 +
* [[GNUrc]], for [https://www.gnurc.com/ GNU Remote Control]
  
 
== Prospective projects ==
 
== Prospective projects ==
Line 29: Line 57:
 
Projects that are only in their planning phase are recorded here. Maybe one day they'll make it to real live active projects, but until then we won't kid ourselves.
 
Projects that are only in their planning phase are recorded here. Maybe one day they'll make it to real live active projects, but until then we won't kid ourselves.
  
 +
* [[MyInternetShortcuts]], manage your shortcuts across all your devices.
 +
* [[WebDefinitions]], a personal assistant.
 +
* [[Gitweb hackathon]], to migrate ProgClub svn to git.
 
* Pddr, to provide a dance school membership management system.
 
* Pddr, to provide a dance school membership management system.
 
* Pcsymbol, to document and explain mathematical symbols and Unicode character codes.
 
* Pcsymbol, to document and explain mathematical symbols and Unicode character codes.
Line 40: Line 71:
 
Stuff that's finished. Latest on top.
 
Stuff that's finished. Latest on top.
  
 +
* [[JJcode]], for key management in your applications.
 +
* [[QuitFirefoxAtTime]], for closing your Firefox tab after a timeout.
 +
* [[cdr]], change directory with regular expressions.
 +
* [[rdfind.php]], redundant data processor in PHP.
 +
* [[SAK2014]], Standard Access Keys for web browsers.
 +
* [[img2data]], for converting image files to Data URIs.
 
* [[Pcforever]], a caching HTTP gateway.
 
* [[Pcforever]], a caching HTTP gateway.
 
* [[Pcrego]], to provide web-based ProgClub registration.
 
* [[Pcrego]], to provide web-based ProgClub registration.
Line 63: Line 100:
 
Stuff that we're not doing. Latest on top.
 
Stuff that we're not doing. Latest on top.
  
 +
* [[Psweb]], for personalserver.com.
 
* [[IPSec]], to secure the network. Cancelled.
 
* [[IPSec]], to secure the network. Cancelled.
  
Line 68: Line 106:
  
 
Contributions to ProgClub projects are covered by the [[ProgClub:Copyrights|Copyright policy]]. Generally in order to contribute to a ProgClub project you need to be a member. That is unless you are only planning to contribute to a [[Forums|forum]] such as the project page on the wiki. Contributions to ProgClub forums are also covered by the [[ProgClub:Copyrights|Copyright policy]]. If you are a member and you contribute to a ProgClub project a link to your user page will be added to the Contributors section of the project page. If you contribute to a ProgClub project and your are not a member, then you can optionally include your details (a link to your user page if you have an account on the wiki (you don't need to be a member to have one of these), your email address, or a link to your web-site) along with your name in the Contributors section.
 
Contributions to ProgClub projects are covered by the [[ProgClub:Copyrights|Copyright policy]]. Generally in order to contribute to a ProgClub project you need to be a member. That is unless you are only planning to contribute to a [[Forums|forum]] such as the project page on the wiki. Contributions to ProgClub forums are also covered by the [[ProgClub:Copyrights|Copyright policy]]. If you are a member and you contribute to a ProgClub project a link to your user page will be added to the Contributors section of the project page. If you contribute to a ProgClub project and your are not a member, then you can optionally include your details (a link to your user page if you have an account on the wiki (you don't need to be a member to have one of these), your email address, or a link to your web-site) along with your name in the Contributors section.
 
== Starting a ProgClub project ==
 
 
If you want to start a project, then: give the project a name, reference the project from this page (put it in the active projects or prospective projects section as appropriate) and copy the [[project template]] to get you started. You might also like to know about how to [[Subversion#Creating_new_projects|create your project in pcrepo]].
 
  
 
== Releasing ProgClub projects ==
 
== Releasing ProgClub projects ==
Line 91: Line 125:
  
 
When calling a project-specific release script you pass a single parameter; that being the 'comment', or 'release notes', for the release you are doing. You run these scripts on [[charity]], and after doing the subversion release the web software in /var/www/ is updated appropriately.
 
When calling a project-specific release script you pass a single parameter; that being the 'comment', or 'release notes', for the release you are doing. You run these scripts on [[charity]], and after doing the subversion release the web software in /var/www/ is updated appropriately.
 
[[Category:Help]]
 

Latest revision as of 21:35, 27 April 2021

This page provides information about ProgClub's free software computer programming and systems administration projects. See TODO for ideas about what to work on. For information about ProgClub domains, see Domains. For information about member services, see Services. For information about hosts on the ProgClub network, see Machines. Check out our Forums to get in touch.

Looking for something to do?

If you're looking for something to do you can browse our projects below, or there's a section on the website: TODO. The TODO section is there to give you a few ideas about things that it would be nice to get done. It's not comprehensive. If you have ideas feel free to make a note of them.

Starting a ProgClub project

If you want to start a project, then: give the project a name, reference the project from this page (put it in the active projects or prospective projects section as appropriate) and copy the project template to get you started. You might also like to know about how to create your project in pcrepo.

You should know that we have a spec concerning versioning of our projects.

There are some handy notes in How to safely open-source internal software - Some best practices.

Software configuration management

You can read about ProgClub's Software Configuration Management.

Projects

Active projects

Current ProgClub projects are:

  • Mudball, John's web framework/toolkit.
  • Hostsgen, for generating /etc/hosts files for replaced hosts.
  • Bugslist, the ProgClub TODO thingo.
  • Svnman, the ProgClub Subversion project management utility.
  • Text tables (TTB), the ProgClub structured data format.
  • PcLog, the ProgClub event logger.
  • PHPBOM, the PHP Ball Of Mud (a PHP web-framework and toolkit).
  • x2maths.web, a maths website.
  • Migration 2016, a sysadmin project to upgrade the ProgClub infrastructure.
  • ProgClub.js, for ProgClub standard JavaScript formatting.
  • Pcformcheck, for validating/testing your HTML forms.
  • Pchtmlcheck, for validating your HTML.
  • Pccipher firefox addon, for Firefox crypto fun.
  • Pcwebstats, to collect HTTP stats.
  • Pcsvnrelease, to provide version and release management for projects.
  • Pcweblink, to private a HTTP redirection and linking service.
  • Slib, to provide the PHP framework for Sgen. Sgen is a Blackbrick product.
  • Pcad, to provide a daemon that can be asked to do things on behalf of non-privileged users.
  • JsPHP, to provide PHP functions in Javascript.
  • Pcphpjs, to provide the CMS for JsPHP.
  • Pcmnet, to provide MemberNet and MobileNet.
  • Pcwiki, to provide the ProgClub wiki.
  • Network administration, to provide network services.

Other projects

Projects that ProgClub are helping with that are not ProgClub projects:

Prospective projects

Projects that are only in their planning phase are recorded here. Maybe one day they'll make it to real live active projects, but until then we won't kid ourselves.

  • MyInternetShortcuts, manage your shortcuts across all your devices.
  • WebDefinitions, a personal assistant.
  • Gitweb hackathon, to migrate ProgClub svn to git.
  • Pddr, to provide a dance school membership management system.
  • Pcsymbol, to document and explain mathematical symbols and Unicode character codes.
  • Pcloan, to record details of who has borrowed what. Maybe integrate with Pcbook?
  • Pcbook, to manage and document our collective library of books.
  • Cweb, to make a distributed search-engine.
  • HackTrap, to create a website designed to trap and find hackers. But not users. Really, just hack hackers. (OK, I'll see what we can do. JE)

Completed projects

Stuff that's finished. Latest on top.

  • JJcode, for key management in your applications.
  • QuitFirefoxAtTime, for closing your Firefox tab after a timeout.
  • cdr, change directory with regular expressions.
  • rdfind.php, redundant data processor in PHP.
  • SAK2014, Standard Access Keys for web browsers.
  • img2data, for converting image files to Data URIs.
  • Pcforever, a caching HTTP gateway.
  • Pcrego, to provide web-based ProgClub registration.
  • Jsrun, for Shawn's JScript.NET utilities.
  • Pcdate, the ProgClub date scheduler.
  • Pcpics, for the ProgClub photo gallery.
  • jj5-test, for John's experiments.
  • Pcwebmail, to provide webmail facilities at ProgClub.
  • Pcweb, to provide the ProgClub web-site.
  • Email, to get email and the mailing lists functional.
  • Pcmail, to provide email administration.
  • Pccipher, to provide compatible encryption libraries for many platforms.
  • Single sign-on, to get user logins working.
  • jj5-bin, to provide administration and utility scripts.
  • Pcview, to provide a web-based svn viewer.
  • Pcldap, to provide LDAP administration.
  • Pcblog, to provide blogs.
  • Pcma, to provide database administration.
  • Kerberos, to provide authentication services.

Cancelled projects

Stuff that we're not doing. Latest on top.

  • Psweb, for personalserver.com.
  • IPSec, to secure the network. Cancelled.

Contributing to ProgClub projects

Contributions to ProgClub projects are covered by the Copyright policy. Generally in order to contribute to a ProgClub project you need to be a member. That is unless you are only planning to contribute to a forum such as the project page on the wiki. Contributions to ProgClub forums are also covered by the Copyright policy. If you are a member and you contribute to a ProgClub project a link to your user page will be added to the Contributors section of the project page. If you contribute to a ProgClub project and your are not a member, then you can optionally include your details (a link to your user page if you have an account on the wiki (you don't need to be a member to have one of these), your email address, or a link to your web-site) along with your name in the Contributors section.

Releasing ProgClub projects

About half of ProgClub's projects have source-code in the subversion repository. Projects that don't have code in the repository don't really need to be released, for them you just have to update the project documentation on the wiki. Projects in svn do need to be released, however. There is a process for releasing projects in svn, and it's detailed on the Subversion page.

In addition to doing a subversion release (which tags the release and updates the latest tag) you might also like to deploy the software. To do a deployment use the project-specific release script in /home/jj5/bin. At the moment that is any of:

  • release-pcwiki, for releasing pcwiki
  • release-pcblog, for releasing pcblog
  • release-pcldap, for releasing pcldap
  • release-pcma, for releasing pcma
  • release-pcview, for releasing pcview
  • release-pccipher, for releasing pccipher
  • release-pcweb, for releasing pcweb
  • release-pcmnet, for releasing pcmnet

This list will be added to as time goes by, and as there is a need for doing new project releases.

When calling a project-specific release script you pass a single parameter; that being the 'comment', or 'release notes', for the release you are doing. You run these scripts on charity, and after doing the subversion release the web software in /var/www/ is updated appropriately.