Changes

From Amahi Wiki
Jump to: navigation, search
no edit summary
'''Amahi is applying for hosting for GSoC 20162017!'''
See the ideas below for GSoC 20162017!
= About Amahi=
Amahi started of a need to keep a personal/home cloud server, keep all my family's photos, videos, documents, and generally any data. It expanded into running applications, mostly web apps, from anything to doing backups to automatic downloaders, media managers and much more.
Amahi is a full and proper server made up of
* A Linux distribution, currently Fedora, but we supported Ubuntu before as well
* An [https://github.com/amahi/hda-ctl installer] to help the user bring bring Amahi up in their system
* [https://www.amahi.org/apps Apps] that are installed by using the platform
* Two mobile apps to access data and apps, for [http://www.amahi.org/android Android] and [http://www.amahi.org/ios iOS].
 
At Amahi we use git (see our [https://github.com/amahi Github repo]) for our version management and the technologies we have ended up using are Ruby, Ruby on Rails, PHP, Linux system internal technologies like system services, configuration areas, web server virtualhosts, databases, DNS, etc., etc.
You can see = Introduce yourself, interact with the [[Google Summer of Code 2014]] page for projects that took place in 2014.community =
First, please [https://docs.google.com/forms/d/e/1FAIpQLSdATld5a5I0_ImhMn4LqV5kUChP-oTeNjQSqEMDCVdMjNeKLg/viewform?usp= Introduce Yourselfsend_form introduce yourself with this form], Interact with the Community =so that we know your background and interests.
If you are you a GSoC studenthave questions about Amahi or just want to interact, we will ask that you can contact us via IRC on [httpshttp://docstalk.amahi.googleorg #amahi on irc.com/a/pucholfreenode.com/forms/d/1k4MQbhQtSCxfP_con95MnjxLv3GeuJifs9jjNBd3E84/viewform introduce yourself with this formnet] (fairly active) or on the amahi-devel [[mailing list]], so (not as active). Don't forget that we know your background and interestsare open to suggestions, extensions or adaptations.Feel free to discuss or propose new ideas for projects!
If One of the most important things is to find an area that you have questions about Amahi or just want to interact'''enjoy''', using a programming environment that you can contact us via IRC on [http://talk.amahi.org #amahi on irc.freenode.net] (fairly active) know or on the amahi-devel [[mailing list]] (not as active). Don't forget that these you are subject willing to suggestionslearn quickly, extensions so read below or adaptationsask questions. Feel free to discuss or propose new ideas for projects!
One of the most important things is to find an area that you '''enjoy''', using a programming language that you know or that you are willing to learn quickly, so read below or ask questions. If you are interested in being a mentor, we have five a few great mentors as of today, but we're very welcoming of more ideas and more mentors!
See the [[#Mentors|mentors]] below. Looking for ideas to mentor, see the [[#Other Ideas|other ideas]] below.
 
Some of the most successful proposals have been completely new ideas submitted by students, so if you don’t see a project on the ideas above that appeals to you, don’t be afraid to suggest a new idea!
=List of Project Ideas=
We have organized the ideas in groups, depending what area of Amahi they belong in. These groups are not in any particular order. For instance if you are a front-end person who knows HTML and Javascript, the GUI/UX may well be the best fit and we'd love to hear from you!
 
==Mobile==
 
Mobile is a great topic and there are a lot of opportunities here within Amahi.
 
===Android App Improvements===
 
'''Description''': Add functionality to the Android app
 
'''Objectives''':
 
* Updates: update material design, update deprecated (or soon to be) calls, provide backwards compatibility
* Add Chromecast support for media playback (videos, audio and pictures)
* Make the application compatible with Android TV
* Secondary user login for the app
* Add upload functionality, e.g. automatically upload photos to your HDA
* Auto backup your phone to your HDA (reference: "Helium")
 
'''Skills Required''': Java, Android framework
 
'''Mentors''': Carlos, Bogdan
 
'''Reference''': [https://github.com/amahi/android Amahi Android Github repo]
 
=== iOS App Improvements ===
 
'''Description''': Add functionality in the iOS app
 
'''Objective''': enhance the iOS app to at least match or surpass the Android app
 
'''Things to be implemented''':
* Sharing of files
* Music metadata display
* Continuous music play
* Secondary user login
* Upload functionality
 
'''Skills Required''': iOS programming
 
'''Mentors''': Carlos, Rod
 
'''Reference''': [https://www.amahi.org/ios Amahi iOS app]
== Platform ==
* [http://www.openmediavault.org/ OpenMediaVault] does have a nice wizard that people like
=== Amahi 9 and Amahi 10 ===
'''Description''': Amahi 9 and 10 are what's next. This is the time to come up with exciting features and ideas that we should put and the GSOC timeline is a perfect match!
'''Mentor''': Rod, Carlos
 
===Modern Apps===
 
'''Description''': There are many new apps coming out, using new technologies, like Node.js and other Javascript frameworks, single page apps, apps using nosql databases like redis, couchdb, etc.
 
'''Objective''': Add install functionality to the Amahi platform to support these newfangled apps. We need to select a few important flagship apps, and make them work.
 
* Research and select a few apps flagship for one platform
* Add install functionality for the new app platform and make the app packaging and make it install properly
 
 
'''Skills Required''': RoR, ruby and the platforms of choice
 
'''Mentor''': Carlos
 
==Mobile==
 
Mobile is a great topic and there are a lot of opportunities here within Amahi.
 
===Android App Improvements===
 
'''Description''': Add functionality or fix bug to the Android app
 
'''Objectives''':
 
* Updates: update material design, update deprecated (or soon to be) calls, provide backwards compatibility
* Add Chromecast support for media playback (videos, audio and pictures)
* Make the application compatible with Android TV
* Secondary user login for the app
* Add upload functionality, e.g. automatically upload photos to your HDA
* Auto backup your phone to your HDA (reference: "Helium")
 
 
'''Skills Required''': Java, Android framework
 
'''Mentors''': Carlos, Bogdan
 
'''Reference''': [https://github.com/amahi/android Amahi Android Github repo]
 
=== iOS App Improvements ===
 
'''Description''': Add functionality in the iOS app
 
'''Objective''': enhance the iOS app to at least match or surpass the Android app
 
'''Things to be implemented''':
* Sharing of files
* Music metadata display
* Continuous music play
* Secondary user login
* Upload functionality
 
 
'''Skills Required''': iOS programming
 
'''Mentors''': Carlos, Rod
 
'''Reference''': [https://www.amahi.org/ios Amahi iOS app]
=== Backend Improvements ===
Details can be found on [https://github.com/amahi/spdy#status SPDY].
'''Skills Required''': GO Go programming
==Reliability==
'''Skills Required''': RoR, system programming
'''Mentor''': Carlos, Rod, Dag, Carlos
'''References'''
* [http://sourceforge.net/projects/rsnapshotbackup/ rsnapshot-backup-php]
* [http://dobrev.ws/projects/webrsnapshot Webrsnapshot]
 
===Package VoIP and/or PBX system===
 
'''Description''': A frequently requested application that is hard to package and configure is a voice over IP telephony app. Related to this is also a PBX system
 
'''Objective''': configuring PBX or a VoIP system can be complex. There are several hurdles to this. The task is to evaluate all
 
'''Skills Required''': app scripting and packaging, telephony, VoIP, messaging systems
 
'''Mentors''': Carlos, Pat
 
'''References''':
* [http://www.asterisk.org/ Asterisk]
* [http://www.freepbx.org/ FreePBX]
==Installer==
== Networking ==
 
===Clustering Amahi Servers===
 
'''Description''': Create a system to create data nodes that integrate with the Amahi API as well as auto mount as NFS or SMB shares to allow the usage of applications through locally mounted shares (such as gallery, subsonic etc). This would allow you to connect Windows / Linux computers as data nodes. Perhaps an installable agent?
 
'''Objective''': An installer that integrates with Amahi (a stripped down version of Amahi?) and a management pane in the main amahi server that allows you to add a server by IP or DNS name.
 
'''Skills Required''': Ruby, misc system scripting
 
'''Mentors''': Carlos
 
===Rolling Distribution===
 
'''Description''': Make Amahi a [https://en.wikipedia.org/wiki/Rolling_release rolling distribution]
 
'''Objective''': Being able to upgrade Amahi versions without having to upgrade OSs is very appealing and a huge win.
 
'''Skills Required''': major Linux packaging mojo, ruby, system scripting, ISO packaging, repo creation
 
'''Mentor''': Carlos
 
== GUI and UX ==
 
 
This area can offer '''a lot''' of possibilities for ideas. A lot can be improved in Amahi to make the users happier. We are listing one topic here, but there are many, from a better front-end HTML (responsiveness, html5 compliance, browser compatibility, etc.), to CSS re-implementation, to allow for nice JS libraries to be used in plugins easily, like D3.js, Highcharts, etc., etc.
 
===Better Theme Integration===
 
'''Description''': Our theme system is pretty good, however, it's very customized and we could do better with a more responsive front-end
 
'''Objective''':
* allow the usage of popular themes out there, like themes for Drupal, Wordpress, etc., with minor configuration changes, or even directly
* allow the integration of mobile themes
* provide hooks to detect mobile devices and present a mobile theme
 
 
'''Skills Required''': CSS, HTML5, ruby, RoR
 
'''Mentors''': Carlos
 
=== Innovative Documentation ===
 
 
'''Description''': Document Amahi in innovative ways, like screencasts, extra videos, hands-on guides, etc.
 
'''Objective''':
* Improve the way users get value from Amahi by instructing how to do typical operations
* It could be with screencasts, hand-on guides, videos, etc.
 
 
'''Skills Required''': management of teams, organization and documentation
 
'''Mentors''': Carlos
=Other Ideas=
* Add features to our popular [http://www.amahi.org/ios Amahi app for iOS]mobile apps: Offer to display image-heavy folders and shares within a "gallery" or collection view, add the ability to navigate and stream shares containing music in a streamlined way, Dynamic search, SPDY support, for both remote and local queries, support for accessing HDA web applications within Amahi for iOS, share folders and files from your HDA to other apps or users, support for HDA user permissions (share & web app restrictions, etc.). Mentors available: Carlos
* PHP API: make a native PHP SDK for the Amahi platform, so that PHP apps (we have a lot of them) can more easy be integrated
* Integrate a mail server as an app. Identify any settings or configuration that need to be implemented in the platform
* For the more design-oriented, build mobile theme(s)
* Documentation or screencasts/tutorials
 
Plus, of course we are open to suggestions. Open a dialog. We're happy to discuss and determine a suitable project.
* Bogdan Mitrea (megabitdragon, CST, GSOC admin): Android, Java, app packaging, system programming,C , C++, community lead
* Rod Runyon (bigfoot65, CST): app lead for Amahi, system programming, app packaging, reliability, documentation, support
* Frans Meulenbroeks (eFfeM, CET) ubuntu, ARM support, FC23, C, Linux issues, networking
* Chris Pick (cpick, PST), iOS app
 
Reference: [http://en.flossmanuals.net/GSoCMentoring/ GSOC mentoring page].
Trusted, Bots, Bureaucrats, emailconfirmed, Administrators
4,146

edits