Firefox OS/AcademyNCU2015
Academy Program in National Central University 2015
Web applications are popular due to the ubiquity of web browsers, and the convenience of using a web browser as a client to update and maintain web applications without distributing and installing software on potentially thousands of client computers is a key reason for their popularity, as is the inherent support for cross-platform compatibility.
Firefox OS is an open source mobile operating system build entirely using Web technologies. Having launched into market on smartphones built by leading handset manufacturers, Firefox OS is seeing rapid expansion into further markets. By making the Web a first class citizen on mobile, Firefox OS seeks to tear down closed ecosystem barriers and promote an open mobile Web.
As an open source project, Firefox OS is built by a community of employees, partners and contributors. Mozilla enthusiastically encourages students from the academy to contribute to Firefox OS. Mozilla works with National Central University in Taiwan and creates a semester class in 2015. In this class, Mozilla deploys required knowledge and skills to students, to implement web based apps. In the end of the class, we expect some apps to be submitted to Mozilla Marketplace.
This class will focus on the implementation of Web Apps and Add-ons, including testing, programming best practice, API basics, and some workshops that allow students to experience the whole process to implement Add-ons and Web Apps. In the end of the class, finished and completed Add-ons and Web Apps are expected. To submit these apps to Mozilla Marketplace is even better.
Class
- National Central University, Taiwan
- Computer Science and Information Engineering Department
- Name of the Class: Implementation and SDLC of Web Apps (Web Apps軟體工程與實作)
- Number of Students: ~30
- Required Skills: Basic JavaScript programming
Working Environment
- Firefox OS Simulator.
- Firefox OS Flame device(To be clarified. Need to be returned at the end of the class).
Rating Criteria
- Rating Criteria:
Type | Percentage | Detailed description |
---|---|---|
Project | 60% | * Votes from Demo: 20% ** In the 20% for demo, each student, teacher assistant and speaker has votes to choose the projects that are done by others. * Code quality: 15% * Unit tests: 15% * Creativity: 10% |
Homework | 30% | Based on the completion and quality of assignment after sessions. Reviewed and assigned by teacher assistants and speakers. |
Attendance | 10% | Based on how students are involved in the class. Reviewed and assigned by teacher assistants and speakers. |
- Button line: Needs to have tests passed, should not be copied from others, and needs to submit the app to Marketplace.
- Additional bonus: Submitted to Marketplace and on the shelf successfully.
Deliverable
- Each student needs to submit a completed and workable Web app or Add-on to Mozilla Marketplace.
Communication Channels
- IRC:
- How to use IRC to get connected with others in the Mozilla projects
- Channels: #b2g, #mozilla-taiwan, #Academy-NCU2015
- Mailing list:
Mentors
Speaker | Responsibility | IRC | Detailed work on items |
---|---|---|---|
Kevin Hu | Management of Engineering Community Development | khu | LinkedIn: https://www.linkedin.com/in/kaichih Telegram: kaichih |
Eddie Lin | Web Developer, Firefox OS Product Marketing | elin | http://mozilla.com.tw, Firefox OS Product Marketing and IoT development exploration. |
Greg Weng | Firefox OS Software Engineer | snowmantw | Lockscreen, and NFC visual effects in Firefox OS. |
Yi-Fan Liao | Firefox OS Software Engineer | yliao | system browser, vertical home screen, and bookmark in Firefox OS. |
Evan Tseng | Firefox OS Software Engineer | evanxd | making FxOS people want, and coding for System App, Calendar App, and JS Marionette in FxOS Team. |
Ricky Chien | Firefox OS Software Engineer | Work on Firefox OS Gaia. | |
Askeing Yen | Firefox OS Senior QA Engineer | B2G, gaia-ui-tests, marionette, automation, B2G-flash-tool, MTBF, MCTS, b2g-util, taskcluster-util | |
Shing Lyu | Firefox OS QA Engineer | slyu | Marionette (WebDriver), MozTrap (Test Case Management Tool), Firefox OS Metrics, and Cost Control. |
Wei-Cheng Pan | Firefox OS Software Engineer | wcpan | Firefox OS Performance. |
Dietrich Ayala | Technical Evangelist | dietrich | Firefox OS (B2G), Gaia, Firefox, Places, Bookmarks, History, Awesomebar, Livemarks, Microsummaries, Session Restore, Add-on SDK (Jetpack), Performance, Snappy |
Agenda
- All slides/materials will be uploaded in this Google Drive folder.
- Projects are expected to be finished before December, in order to avoid the conflict with projects from other classes.
# | Date | Topic | Speaker / Owner | Homework |
---|---|---|---|---|
1 | 09/18 | Introduction Overview of this class(rating criteria, major goals, projects). At the end of this session, we will also provide the basic instruction to use Github. |
Kevin Hu | Create a repository and rename it. |
2 | 09/25 | Github, Bugzilla, WebIDE and DevTools(including practice) Introduction of Github, Bugzilla, WebIDE and DevTools. After this session, students are expected to have the skills to use some tools to develop Web Apps. |
Ricky Chien | To modify Hello World app, and submit to your own repository. |
3 | 10/02 | JavaScript Best Practice Some examples will be used in this session. After this session, students are expected to learn JavaScript best practice, and the skills to refactor JavaScript codes. |
Greg Weng | Codes refactoring. |
4 | 10/16 | Testing Concepts, Framework and Strategies Introduction of testing concept, strategies and current used testing framework in Mozilla. Students are expected to learn the importance of unit tests and know how to write good one. |
Shing Lyu, Askeing Yen | To write tests to cover codes from the previous session. |
5 | 10/23 | Firefox OS and Web Apps Introduction Architecture of Firefox OS, types of different kinds of Web Apps, and structure of Web Apps will be introduced. Students are expected to understand the concept of Web Apps. |
Start to provide the draft of proposed project. | |
6 | 10/30 | WebAPI Basics Different kinds of Web APIs will be introduced. Students are expected to know the capacity of Web Apps after this session. |
Wei-Cheng Pan | Use at least one WebAPI in their prototype projects. |
7 | 11/06 | Introduction of Add-ons + Presentation of projects(1) Each student needs to start to present the idea of proposed project in the class. Speaker will review the ideas and provide technical suggestions. Meanwhile, knowledge of Add-ons will be deployed. |
Eddie Lin | |
8 | 11/13 | Client-server Model and Server-side Programming Basics + Presentation of projects(2) Students who didn't present the ideas yet can present the ideas this week. Revised ideas are accepted to be presented as well. common client-server model on the Web and some server-side programming options will be introduced, too. |
Eddie Lin | |
9 | 11/20 | Introduction of WoT + Presentation of projects(3) All students are expected to finish the presentation of proposed projects this week. Speaker will share the idea of WoT and what we've done so far. |
Evan Tseng | |
10 | 11/27 | Mozilla Taipei Visit Students will come to visit Mozilla Taipei office, and all students need to demo the result of implemented apps. All speakers and students can vote and that's considered as an important factor of final rating in this class. |
Kevin Hu | Project Demo |
11 | 12/18 | How to work on Mozilla Projects Introduction of using Git and Bugzilla to work on Mozilla projects. Code review process, patch submission process, and identification of projects in Bugzilla will be introduced. Students can understand how big open source projects are working, and how to work with lots of talented people worldwide. |
Kevin Hu | None. |
12 | 12/25 | Introduction of animation, web component and Firefox OS TV Introduction of animation technology, web component and technology in Firefox OS TV device. |
Yifan Liao | None. |
13 | 01/08 | Special guest | None. | |
14 | 01/15 | Special guest: Dietrich Ayala Technical Evangelist at Mozilla. |
Dietrich Ayala | None. |