Summer of Code/Sugarizer Server Dashboard
This project is to create a dashboard for Sugarizer server accessible as a web interface through which different aspects of the server can be viewed or configured in a user friendly manner. The project will provide an web interface for the Sugarizer server which will help in listing the Application running via the Sugarizer Server, the users who have been registered on the server, journals and will also provide editing options to the user to modify the various aspects.
Overview
Sugar Labs aims at creating tools that learners use to explore, discover, create, and reflect with the mission to support the Sugar community of users and developers and establish regional, autonomous "Sugar Labs" around the world to help learners "learn how to learn" by tailoring Sugar to local languages and curricula.
Sugarizer is a way to use Sugar on any device using the web technologies(HTML,Javascript,etc) and is based on Sugar Web Library which mimics the Sugar UI using HTML5 and CSS3 and reproduces Sugar Views. Currently, Sugarizer is distributed in 3 forms:
- Thin Client: The thin client doesn't require any installation and will run on any device with a recent Chrome/Chromium version. The thin client requires permanent access to Sugarizer server.
- Client: It is installed locally on the device and hence doesn't require access to server. Currently the client is available for the following platforms: PC/Mac OS, Android, iOS, and Chrome Web App.
- Server: It acts as a backend for network features of Sugarizer. It exposes locally thin client so as to allow deployment of Sugarizer to local server. It can also be used to provide collaboration features for client and thin client.
Developing a Sugarizer Server Dashboard which will act as a web based admin console for the Sugarizer server. The dashboard will allow to manage and analyze all activity on a Sugarizer Server. The following features will be implemented with the Dashboard:
- Users: List the user count and user details including the list of currently connected users, top users on server, last user connection and user management options like add/edit/remove user.
- Journal: Journals store the information about applications, the option will provide information about how many Jounals and how many entries are there in the Journal, last journal and last entries, size of journals, top Jounals and Journal management features like view/update/remove entries.
- Application: The interface will show the list of applications available on the server, change the application visibility from Client, update order and way it appears in the favorite view.
- Graphic and request: Display reports(text/graphical) of previous data such as User statistics, application statistics, etc.
The development of Server dashboard will help create a user friendly interface through which the user will be able to interact with the Sugarizer server and control various aspects as mentioned in the feature list. This will help the users get up and running with the Sugarizer server quickly and will help in increasing the adoption of the Sugarizer web platform.
Development Approach
The approach of Evolutionary Prototyping would be followed which will involve following phases:
- Phase 1: Gathering of requirements
- Phase 2: Prototype development based on requirements
- Phase 3: Feedback from the mentor for the developed prototype
- Phase 4: Refinements based on the gathered feedback
This approach will help in making the development easily adaptable to changes in the requirements as well as help in identifying and rectifying bugs in the early development phase hence resulting in a better software at the end of the development cycle.
Technology Stack
For the development of dashboard the following technologies will be used:
- Frontend: HTML5, CSS3, Javascript, Bootstrap framework
- Backend: node.js, mongodb
The use of frameworks like bootstrap will help to build a responsive frontend which will help improve the user experience. The backend being powered by node.js and mongodb will help in better utilization of resources since most of the work will be IO based and the non-blocking IO of node.js will help improve the performance. This will also help in reducing the number of language dependencies the Sugarizer project is based on.
Milestones
22 April-23 May
- Bonding with the community
- Gathering the requirements for the project
- Feedback from the mentor
23 May - 10 June
- Semester exams
During the exam period the time being devoted to the development will be reduced. To compensate for the same, more tasks will be achieved during the pre and post examination period.
11 June - 17 June
- First prototype
- Feedback and improvisation
18 June - 24 June
- Second prototype
- Feedback and improvisation
- Submission for mid term evaluation
25 June - 1 July
- Feedback and improvisation
2 July - 14 July
- Documentation for the dashboard
- Writing test cases
15 July - 31 July
- First Beta
- Feedback and bug fixing
1 August - 7 August
- Second Beta
- Feedback and bug fixes
8 August - 15 August
- Release candidate
- Preparation for final submission
16 August - 23 August
- Final Submission
- Deliverable: A dashboard for Sugarizer server
=
About Me
Name: Saurabh Badhwar
E-Mail Address: contact@saurabhbadhwar.xyz
SugarLabs Wiki Username: h4xr
IRC Nickname: Saurabh_Badhwar
First language: Hindi, Also proficient in English
Current Location: Delhi, India
Work hours: I would like to work between 13:00 to 18:00 (UTC +5:30)
Contribution to Open Source Project: Currently an active contributor in Mozilla Delhi Community, my work can be tracked on GitHub