===Profile
**Name: ** Dharmraj Rathod
**IRC nickname on Freenode: ** DharmrajRathod98
**Web Profile: **https://dmrathod.github.io/
**GitHub: **https://github.com/DMRathod
**Location (country or state): ** Gujarat, India
**working hours: ** 4:00PM to 10:00PM (Time Zone: IST(UTC +5:30))
===Synopsis
**Short summary describing your project and how it will benefit Wikimedia projects**
Database backup inventory improvements: rightnow, structured log of backup output is provide by database backups. Main objective of this project is to build a dashboard for metadata of backup objects and for status of ongoing backups objects so that we can track the status of backups and show them on dashboard. Another task is to fill information like size in backup_objects table which is not filled at this moment so, we can make sure that no objects of backups are left uncopied. This will require reading from existng tables backups, backup_files, show them on dashboard and fill in the backup_objects. This project will be developed from the base as no existing code available for dashboard.
I will be developing dashboard using technologies:
# //Flask Framework//
# //MariaDB//
**Benefits**
Main benefit is we can easily track and report the status of the backups.
Filled backup_objects so we can make sure no backup objects are left uncopied.
**Possible Mentor(s)**
Jaime Crespo and Manuel Arostegui
**Have you contacted your mentors already?**
Yes i have been in contact with mentor and discussed about the project idea.
===Deliverables
**Describe the timeline of your work with deadlines and milestones, broken down week by week. Make sure to include time you are planning to allocate for investigation, coding, deploying, testing and documentation**
> Develop Dashboard for metadata backups objects.
> Design the FLASK app backend components(with filter) for metadata backups objects.
> Develop Dashboard for ongoing backups objects.
:: First Evalution ::
> Design the FLASK app backend components(with filter) for ongoing backups objects.
> Filled backup_objects table.
> testing and Documentation.
:: Final Evalution ::
**Proposed Timeline: **
18 May-6 June
//( community bonding period )//
- Studying how backups are working at WMF and getting more familiar with wikimedia by solving some more microtasks (if possible).
- Understanding the existing code for reading and writing to the backups database.
- Analysis of backups database.
- Detailed Requirement Analysis for the project.
- Setting Up the Basic Environment for developement (server).
Week-1 & 2 (7 - 20 June)
//( Project Setup )//
- Setup Flask App including Database for backups (Adding dummy Information).
- Planning the Design of the front-end and back-end.
- Add basic flask App repository in codebase for dashboard and backend.
Week-3 (21 - 27 June)
//(Front-end (backup-objects - metadata) )//
- Studying which fields from the backups tabel are to be shown on web dashboard.
- Understanding the field status for backup objects and their errors.
- Designing the front-end(UI templates) for backup objects.
- Mentor review for front-end UI and Improvements for the same.
Week-4 (28 June - 4 July)
//( Back-end (backup-objects - metadata) )//
- Add models for communicating with database.
- Retrive metadata on dashboard.
- Add Filters for status.
- Add Unit test for flask app.
- Mentor review for back-end and Improvements for the same.
Week-5 (5 - 11 July)
//( Front-end (ongoing backup-objects) )//
- Studying which fields from the database tabels are to be shown on web dashboard for status of ongoing backups.
- Understanding the field status for ongoing backup objects and their errors.
- Designing the front-end(UI templates) for ongoing backup objects.
- Mentor review for front-end UI and Improvements for the same.
Week-6 (12 - 18 July) (12-16 July First evalution)
**`First Evalution`**
- Evalution and Improvements according to feedback.
//( Back-end (ongoing backup-objects) )//
- Add models for communicating with database and retrive them on dashboard for ongoing backups objects.
- Add Filters accordinly for ongoing status.
Week-7 (19 - 25 July)
//( Back-end (ongoing backup-objects) )//
- Add Unit test for improved code.
- Mentor review for back-end(ongoing backups objects) and Improvements for the same.
- Improvements for whole dashboard if needed.
Week-8 (26 July - 1 August)
//( filling in the backup_objects table )//
- Add models for communicating with database.
- Add Information in backup_objects(table).
- Add Unit test for improved code.
- Mentor review for back-end and Improvements for the same.
Week-9 (2 - 8 August)
//( Testing )//
- Testing the Flask App rigorously and change accordingly if needed.
- Improvements if any
Week-10 (9 - 15 August)
//( Documentation )//
- Documentation for whole Flask App.
Week 11 (16-23 August) (Final week: Students submit their final work product and their final mentor evaluation)
- **`Final Submission`** of Flask App.
===Participation
**Describe how you plan to communicate progress and ask for help, where you plan to publish your source code, etc**
I will be publishing source code on git-gerrit with dev branch. so after reviewing and testing we can merge code to master branch.
I will use Phabricator for managing tasks.
I will be available in working hours (4:00PM to 10:00PM(UTC +5:30)) during GSOC program. I will be availabe on email non-working hours.
We can setup the meeting once or sometimes twice a week for disccusing plans for next week and work completed.
===About Me
**Your education :**
I am pursuing Master of Technology(Computer Science and Technology) in Indian Institute of Information and Technology-Vadodara. I completed my Bachelor of Engineering(Computer Engineering) in 2020.
**How did you hear about this program?**
I heared about GSOC from one of my seniors. This is my first time participation in GSOC and i am very excited to work on this project.
**Will you have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program?**
I don't have any specific time commitments during the GSOC program as my Mtech(second semester) exams will be on 12th, May 2021 as per my academic schedule. Next semester will be starting from 19th,July 2021, so after 19th July also we don't have any classes as in my final year i will have to do research thesis so i can manage my time for both. I am only planning for GSOC for this summer. I can devote 40 hours/week for GSoC project.
**We advise all candidates eligible for Google Summer of Code and Outreachy to apply for both programs. Are you planning to apply to both programs and, if so, with what organization(s)?**
I was intrested to apply for Outreachy as it is very good initiative but unfortunately after reading eligibility criteria, i am not eligible to apply.
**What does making this project happen mean to you?**
Wikimedia is opensource, non-profit, charitable and global recognized organization that would be great to work with wikimedia. I am quite new to open source and having read the project description & discussed with the mentor, I believe this project is very well suited for me. I have developed some dashboard in flask and different Technologies, which has helped me understand the nuances of designing such dashboard. I beleive with my experience i can complete this project with wikimedia and i will get great experience of open source contribution.
===Past Experience
**Describe any relevant projects that you've worked on previously and what knowledge you gained from working on them.**
I have very strong fundamental knowledge of computer science in C language, Algorithm, Data Structure, Operating System, DBMS, Theory of Computation as i have cleared GATE 2020.
I have experienced in working with python,java,C,R ,HTML,CSS,php. I mostly work on mysql,postgress.
I worked on two personal flask projects. One is simple (CRUD)dashboard gave me better insight of working with database and another is flaskblog application where you can write your own small blog with login module,CRUD.
I have almost 1.5 year of experience in web developement.
1) https://github.com/DMRathod/RD_web
2) https://github.com/DMRathod/web_flask
In SSIP gujarat heckathon we have devloped one dashboard(PHP) for Employee Attendance Record keeping System that gave me great experince of team collabration, time management and effective time deliverables.
3) https://github.com/DMRathod/SSIP-Heckathon-project
I have some good experience with android(Java) developement. We have made simple introductory website for our application.
4) https://gwadp-2c6dd.web.app/
Apart from this i have done some assignmenst at IIIT-V which gave me good insight of the ML,AI and Data Analytics.
5) https://github.com/DMRathod?tab=repositories
**Describe any open source projects you have contributed to as a user and contributor.**
I have very small contribution to PecanProject. The aim was to make regex more robust so that connection string can accept url with or without trailing slash.
6) https://github.com/PecanProject/rpecanapi/pulls
**You must have written a feature or bugfix for a Wikimedia project during the application phase (see the section about microtasks in the application process steps), please link to it here. We give strong preference to candidates who have done so.**
I am currently working on this microtask and it is almost finished.
7) https://phabricator.wikimedia.org/T277754
I am Reading how backups are working at WMF and trying to understand the https://phabricator.wikimedia.org/diffusion/OSWB/ repository where some changes required for my project idea.
I am enjoying contributing to open source and would enjoy to continue doing so during my summer and thereafter.