Difference between revisions of "Summer of Code/2014/AnaBalica/Social Help"
< Summer of Code | 2014
Jump to navigation
Jump to search
(About the project detailed description) |
|||
Line 23: | Line 23: | ||
:Social Help | :Social Help | ||
*''Describe your project in 10-20 sentences. What are you making? Who are you making it for, and why do they need it? What technologies (programming languages, etc.) will you be using?'' | *''Describe your project in 10-20 sentences. What are you making? Who are you making it for, and why do they need it? What technologies (programming languages, etc.) will you be using?'' | ||
− | :Social Help is | + | ====Abstract==== |
+ | :Social Help is a system wide mechanism to access a range of social channels like IRC, forums or social networks (i.e. Sugar Network) within a specific context. Basic implementation is available on [https://github.com/ana-balica/sugar/tree/prototype-social-help github branch prototype-social-help]. The prototype includes a system-wide handling of a keypress combination - <Shift><Alt><c>, which pops up a window that has 2 options: to join IRC or to open the Browse activity. At the moment the following window looks like that: | ||
− | :The | + | <gallery> |
+ | screenshot_sugar1.png|Social Help window within Read Activity | ||
+ | screenshot_sugar2.png|Social Sugar window within TurtleArt activity | ||
+ | </gallery> | ||
+ | |||
+ | :Here is a simple UI design of the window (made in Inkscape). The Discourse button is merely an example (in case the community decides on using a different forum platform). | ||
+ | |||
+ | <gallery> | ||
+ | Social_help_window.png|Social Help window design | ||
+ | </gallery> | ||
+ | |||
+ | ====Functional requirements==== | ||
+ | {| class="wikitable" style="margin: 1em auto 1em auto;" | ||
+ | |- | ||
+ | ! Nr !! Description !! Priority !! Time to implement !! Comments | ||
+ | |- | ||
+ | | 1 || On a specific keypress bring up a window with a list of available social channels for the specific context || Major || 4 days || | ||
+ | |- | ||
+ | | 2 || Create a toolbar button in the sugar toolkit with a palette that contains all available social channels for the following activity || Major || 4 days || The priority is set to major, since a visual component to access Social Help is more intuitive and simple to find. | ||
+ | |- | ||
+ | | 3 || Include Social Help toolbar button to the main activities included in the standard distribution || Major || 1 day || If the button won't be made available from the UI, the whole reason to have it disappears. | ||
+ | |- | ||
+ | | 4 || On clicking the IRC button, IRC activity should be opened with the name of the user set from system settings and the respective channel joined. || Major || 3 days || In my opinion an IRC channel option should be present along with the forum possibility, because it is the fastest and most straight-forward way to get a quick answer to a short, well-formed question (nevertheless it contains its drawbacks, which are surely covered by forum style help). I am also wondering if there is going to exist a single or multiple help channels. | ||
+ | |- | ||
+ | | 5 || Display an error message in case the user has chosen to ask for help via IRC activity and the following activity is not installed. Propose to open the browser to the download page of the IRC activity. || Medium || 2 days || | ||
+ | |- | ||
+ | | 6 || On clicking the forum button, resume the Browse activity and open an extra tab that links to the forum address. || Major || 3 days || | ||
+ | |- | ||
+ | | 7 || Create an automatic way of registration/authentication to afford users to post questions on the forum/network as quick as possible. The registration and authentication progress is dependent on the platform to be chosen. || Medium || 2 weeks || It is quite important to create a flawless workflow to the user, it is especially important in case it is going to be a one time access. If a user will visit the forum/network more than once, than the browser clearly keeps the session data and allow instant access to posting. | ||
+ | |- | ||
+ | | 8 || Localize all the components of Social Help || Major || 2 days || | ||
+ | |- | ||
+ | | 9 || Create the Code of Conduct for Social Help channels || Minor || 3 days || | ||
+ | |} | ||
+ | |||
+ | ====Conclusion==== | ||
+ | :Social Help is oriented towards users of Sugar (kids) that for various reasons are in need of social interaction: | ||
:* ask a question on how to achieve something within Sugar or an activity | :* ask a question on how to achieve something within Sugar or an activity | ||
:* share knowledge and experience | :* share knowledge and experience | ||
Line 57: | Line 94: | ||
:Additionally I was employed as software developer for 8 months at [http://www.red-sky.com/ Red Sky] (had to quit due to change of geolocation). I have worked on [http://www.carocean.co.uk/ CarOcean] project, which is based on Scrapy framework. My responsibility was to handle about 100 different spiders (the project is available in 9 countries). Consequently I got a lot of experience in crawling the web, using xpath, regular expressions, agile methodology. As well I have worked on small PHP (Zend framework) projects. | :Additionally I was employed as software developer for 8 months at [http://www.red-sky.com/ Red Sky] (had to quit due to change of geolocation). I have worked on [http://www.carocean.co.uk/ CarOcean] project, which is based on Scrapy framework. My responsibility was to handle about 100 different spiders (the project is available in 9 countries). Consequently I got a lot of experience in crawling the web, using xpath, regular expressions, agile methodology. As well I have worked on small PHP (Zend framework) projects. | ||
+ | |||
+ | ===Project prototype=== | ||
+ | |||
+ | The prototype is hosted on github - https://github.com/ana-balica/sugar/tree/prototype-social-help | ||
+ | |||
+ | |||
+ | |||
+ | Functional requirements: | ||
===You and the community=== | ===You and the community=== |
Revision as of 14:25, 15 March 2014
About me
- What is your name?
- Ana Balica
- What is your email address?
- ana.balica@gmail.com
- What is your Sugar Labs wiki username?
- AnaBalica
- What is your IRC nickname on irc.freenode.net?
- ananasova
- What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)
- I know 3 languages: Romanian, Russian and English.
- Where are you located, and what hours (UTC) do you tend to work? (We also try to match mentors by general time zone if possible.)
- Originally I am from Republic of Moldova. My current location (also during the summer) is Prague, Czech Republic (UTC +1). Normal working day starts at 8AM UTC and ends at 7PM UTC.
- Have you participated in an open-source project before? If so, please send us URLs to your profile pages for those projects, or some other demonstration of the work that you have done in open-source. If not, why do you want to work on an open-source project this summer?
- Open-source contributions:
- moin2.0 - change subscription mechanism and other small enhancements
- sugar bugfix - 1 and 2
About the project
- What is the name of your project?
- Social Help
- Describe your project in 10-20 sentences. What are you making? Who are you making it for, and why do they need it? What technologies (programming languages, etc.) will you be using?
Abstract
- Social Help is a system wide mechanism to access a range of social channels like IRC, forums or social networks (i.e. Sugar Network) within a specific context. Basic implementation is available on github branch prototype-social-help. The prototype includes a system-wide handling of a keypress combination - <Shift><Alt><c>, which pops up a window that has 2 options: to join IRC or to open the Browse activity. At the moment the following window looks like that:
- Here is a simple UI design of the window (made in Inkscape). The Discourse button is merely an example (in case the community decides on using a different forum platform).
Functional requirements
Nr | Description | Priority | Time to implement | Comments |
---|---|---|---|---|
1 | On a specific keypress bring up a window with a list of available social channels for the specific context | Major | 4 days | |
2 | Create a toolbar button in the sugar toolkit with a palette that contains all available social channels for the following activity | Major | 4 days | The priority is set to major, since a visual component to access Social Help is more intuitive and simple to find. |
3 | Include Social Help toolbar button to the main activities included in the standard distribution | Major | 1 day | If the button won't be made available from the UI, the whole reason to have it disappears. |
4 | On clicking the IRC button, IRC activity should be opened with the name of the user set from system settings and the respective channel joined. | Major | 3 days | In my opinion an IRC channel option should be present along with the forum possibility, because it is the fastest and most straight-forward way to get a quick answer to a short, well-formed question (nevertheless it contains its drawbacks, which are surely covered by forum style help). I am also wondering if there is going to exist a single or multiple help channels. |
5 | Display an error message in case the user has chosen to ask for help via IRC activity and the following activity is not installed. Propose to open the browser to the download page of the IRC activity. | Medium | 2 days | |
6 | On clicking the forum button, resume the Browse activity and open an extra tab that links to the forum address. | Major | 3 days | |
7 | Create an automatic way of registration/authentication to afford users to post questions on the forum/network as quick as possible. The registration and authentication progress is dependent on the platform to be chosen. | Medium | 2 weeks | It is quite important to create a flawless workflow to the user, it is especially important in case it is going to be a one time access. If a user will visit the forum/network more than once, than the browser clearly keeps the session data and allow instant access to posting. |
8 | Localize all the components of Social Help | Major | 2 days | |
9 | Create the Code of Conduct for Social Help channels | Minor | 3 days |
Conclusion
- Social Help is oriented towards users of Sugar (kids) that for various reasons are in need of social interaction:
- ask a question on how to achieve something within Sugar or an activity
- share knowledge and experience
- propose enhancements
- debug possible problems
- To think about it, today's society is overwhelmed with social networks, forums and chats. Social Help is an easy way to access social channels and get children involved into helping each other. The interaction can give them a headstart in understanding how to use the tools they are offered and even contribute to the project.
- What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; tell us what you will be working on each week. (As the summer goes on, you and your mentor will adjust your schedule, but it's good to have a plan at the beginning so you have an idea of where you're headed.) Note that you should probably plan to have something "working and 90% done" by the midterm evaluation (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.
- Timeline:
- 19-25 May - Decide on and create a final design and GUI of the Social Help window (general activity view and context-dependent view)
- 26-1 June - Bring on a context-dependent window (within an activity) on <Shift><Alt><c> keypress to show all available communication channels for the following context
- 2-8 June - Create a toolbar button for social help with a dropdown menu listing all available channels for the current context
- 9-15 June - On IRC channel button press event open IRC activity and join the channel
- 16-22 June - Set up a forum platform (Discourse for example), configure it (create general topics, assign admins, rules, write descriptions)
- 23-29 June - On Forum(s) button press event open Browse activity and open the page to the specific topic on the sugar forum
- 30-6 July - Localization, review, refactor if necessary some parts of code
- 7-13 July - Write unit and integration tests for the activity and the functionality integrated into sugar
- 14-20 July - Extensive manual testing
- 21-27 July - Fix bugs, solve unexpected issues
- 28-3 August - Write documentation (docstrings, a wiki page with description, help page to Help activity maybe)
- 4-10 August - Extra polishing (small enhancements)
- 11-17 August - Merging to main repos, submitting code to melange
- Convince us, in 5-15 sentences, that you will be able to successfully complete your project in the timeline you have described. This is usually where people describe their past experiences, credentials, prior projects, schoolwork, and that sort of thing, but be creative. Link to prior work or other resources as relevant.
- My exposure to computer science and information technologies began 4 years ago. In that period I have achieved a reasonably solid expertise in clean coding, usage of procedural and OOP paradigms (just the basics of functional), scratched the surface of software design and design patters. My main passion is Python (actively developing using Python for the last 3 years), though I have tried also other tools (JavaScript, PHP, Matlab/Octave, git, a variety of web frameworks, technologies, libraries).
- Some of my pet projects are:
- FAF website (Django), github repo, currently hosted here http://faf.utm.md/ (the university website might be down) and migrating to http://faf.code.md/
- My blog written in Flask, Code Speculations, available here http://www.code-speculations.me/
- My github contains a variety of small university projects: a poll website written in Symfony2, Scrapy spiders, Qt4 apps, semantic web and linked data showcase app, SVG based editing tool.
- Additionally I was employed as software developer for 8 months at Red Sky (had to quit due to change of geolocation). I have worked on CarOcean project, which is based on Scrapy framework. My responsibility was to handle about 100 different spiders (the project is available in 9 countries). Consequently I got a lot of experience in crawling the web, using xpath, regular expressions, agile methodology. As well I have worked on small PHP (Zend framework) projects.
Project prototype
The prototype is hosted on github - https://github.com/ana-balica/sugar/tree/prototype-social-help
Functional requirements:
You and the community
- If your project is successfully completed, what will its impact be on the Sugar Labs community? Give 3 answers, each 1-3 paragraphs in length. The first one should be yours. The other two should be answers from members of the Sugar Labs community, at least one of whom should be a Sugar Labs GSoC mentor. Provide email contact information for non-GSoC mentors.
- My thoughts
- Social Help doesn't have a striking, absolutely vital impact on Sugar Labs community. Nevertheless this small feature will open the borders of communication for so many users on some many topics. Social Help shows a straight-forward way where to ask a question or to share your knowledge. By completing this project, Sugar Labs community will get even closer to its users through IRC and forums, which subsequently leads to a better understanding of what it's users are expecting.
- Moreover Sugar Help will become a channel to find pals all over the world with same interests via reciprocal help.
- What will you do if you get stuck on your project and your mentor isn't around?
- Research or refocus. Those are the 2 strategies that always work for me. If it is a bug, then there must be a way to solve it. Get a step back and read some documentation - maybe I have missed something important. If the issue involves a collaborative decision and the presence of the mentor is absolutely critical, then I can refocus, checkout to a new topic branch and start doing other tasks.
- How do you propose you will be keeping the community informed of your progress and any problems or questions you might have over the course of the project?
- Talking from my past experience, weekly meeting are really helpful to keep everybody up-to-date (might be held only with the mentors and co-mentors). Usually I prepare lists of DONE, TODO next week and BLOCKERS. Also I am always online on IRC (using irssi via ssh) and I check it several times a day.
Miscellaneous
- We want to make sure that you can set up a development environment before the summer starts. Please do one of the following:
- Sugar commits:
- Describe a great learning experience you had as a child.
- Is there anything else we should have asked you or anything else that we should know that might make us like you or your project more?
[[Category:2014 GSoC applications]]