This project done for the completion of screening task for python, FOSSEE 2019 fellowship. The task requirement was to implement a fully functional GUI CSV Editor by using Python and PyQT as open source project hosted on github.
Features (Click to expand)
1. Load a CSV file and view it in table form
2. Add data to the table as a new blank row
3. Edit Data in the table
4. Delete data from the table:
1) Option to delete whole column or whole row and also individual cells
5. show/hide Columns: Select which columns should be visible in the desired table
6. Plot any two columns with following plots in a new tab:
1) Plot scatter points
2) Plot scatter points with smooth lines
3) Plot lines
7. Ability to add a custom title for the plot on the fly
8. Ability to flip the X and Y axes on the fly
9. Save the plot as PNG file
10. Prompt for saving the file in case any modifications are made to the original file
Screening Task for fossee fellowship 2019, IITB internship.
- Python
- PyQt/Kivy
-
Create a Github Account or Use your existing one.
-
Create a new Repository in your Github Account for this task called fsf_2019_screening_task2
-
Commit your code at regular intervals by doing small incremental changes to your code (committing huge blobs of code all at once is not recommended).
-
The steps in “Description” below are general, minimum and mandatory guidelines. You are free to add well documented features to your application.
Following functionalities should be present in the application.
User should be able to:
-
Load a csv file using ‘Load’ option available under “File” menu
-
Display the complete data from the loaded csv as a table
-
Edit the existing data in the table using ‘Edit data’ option under “Edit” menu.
-
Add new data to the table using ‘Add data’ option under “File” menu.
-
Select any number of columns from the displayed table
-
Plot the data from any two selected columns should be available as buttons as mentioned below:
-
Plot scatter points
-
Plot scatter points with smooth lines
-
Plot lines
-
-
Click on any of the plot button. Plot should be generated accordingly in a new tab.
-
Label x-axis and y-axis accordingly.
-
Add a title to the graph.
-
Save the plot as .png file using ‘Save as png’ option under “File” menu.
-
Create a Github Account or Use your existing one.
-
Create a new Repository in your Github Account for this task called fsf_2019_screening_task2
-
Send the Link of your github repository to contact-om[at]fossee[dot]in
Usage (Click to expand)
-
Download the project from github or clone the repo to your machine using:
git clone https://github.com/kushan02/fsf_2019_screening_task2.git
-
Install the project requirements using pip:
If on linux, type:
pip3 install -r requirements.txt
If on windows type ```pip install -r requirements.txt```
- NOTE: If you are on ubuntu, you may need an additional step to get everything working:
sudo apt-get install python3-tk
(Matplot lib internally requires this for plotting on GUI) - To run the app, navigate to src folder in the terminal using
cd src
Now execute the app by:
python3 app.py
if on Linux
python app.py
if on Windows