New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[TODO] visualization from output #9
Comments
Is HTML and JS mandatory? I am more than happy to help in either of the cases, but was thinking tools like streamlit, solara, etc which works great with data and is convenient! |
I can work on it. We can use mapbox. But would require data in the following format. Consider including input and output inside the sample folder so that it's easier to follow through. [
{
"center": "NATIONAL SCHOOL OF SCIENCES SECONDARY SCHOOL",
"school": "KATHMANDU MODEL SECONDARY SCHOOL",
"count": 100,
"distance_meter": 1330
},
{
"center": "UNIGLOBE MA VI",
"school": "KATHMANDU MODEL SECONDARY SCHOOL",
"count": 150,
"distance_meter": 2300
},
{
"center": "NABODIT BIDHYAKUNJA SECONDARY SCHOOL",
"school": "UNIGLOBE MA VI",
"count": 200,
"distance_meter": 1500
},
{
"center": "PADMAKANYA BIDYASHRAM SECONDARY SCHOOL",
"school": "NABODIT BIDHYAKUNJA SECONDARY SCHOOL",
"count": 300,
"distance_meter": 1700
}
] |
Avoiding anything that needs to be self hosted |
pls run the script with input files in sample directory to generate output file in TSV one option to read TSV and map to json is d3.tsv instructions on how to include d3 in browser here, importing only the |
I can suggest a reliable automated solution: The visualization can be easily deployed on the GitHub pages with JS & HTML solution and we don't have to worry about any additional stuff. The GitHub Actions should be able to execute the Python script preparing a JSON file with expected output that is committed back to the repository on the production ready branch. The production ready branch can be then hosted on the GitHub Pages. Everything can be automated based on the release tag. |
The only downside is, the build time can be high but shouldn't be an issue. |
Considering this, I could only think of this idea where each user will have to host their data separately as each user would have distinct input and hence the output. Is this true or am I missing something here? One way to create a dashboard would be to prompt the user to enter the generated output files and display the file contents but that may not be convenient in case a district or org/someone wants to publish the website to the general public to visualize the exam centers. |
I think to develop an interactive dashboard we must consider these things, I tried to conceptualize this and here is the summary.
This solution will leverage modern web technologies for a seamless and informative user experience. I look forward to any questions or further discussion on this feature's implementation. |
@roopeshach Everything seems great but as mentioned static website seems to be the preferred solution, so I think the last point of implementing RESTful API is not applicable. |
Even though it's not a preferred solution as said earlier, I created a streamlit app that fulfills the requirements. Here's my solution:
link to visualization : https://centerrandomizedvisualization.streamlit.app/ It works fine for my set of data. However, I still have a lot of refactoring to do for it to be usable for everyone(I rushed it in a way). |
Awesome @RupeshAryal , I was also half way on it, maybe we can continue together further? I created somewhat similar!(ss for reference) |
Wonderful stuff, I'd love to review this 🎖️ 🎖️ |
Definitely, I was planning to expand the solution to add few more features that includes users being able to:
1 and 2 will require few data preprocessing and writing queries to retrieve required data. We can contribute together to build the features, refactor and optimize existing solution and discuss other alternatives as well. |
didn't know about streamlit's capabilities. this looks good. please continue |
@sumanashrestha, I suggest encapsulating this code within a desktop application to make it more user-friendly for those without a technical background. They could interact with the functionality through a GUI instead of an IDE. Alternatively, if you're considering a web application, I recommend using a framework like Flask or FastAPI. However, keep in mind that this would require a web hosting platform and a database. Please let us know if a desktop app would suffice—I'd be happy to assist with its development. |
@sumanashrestha |
@sumanashrestha: The long-term and sustainable solution needs to be hosted somewhere. I foresee it as a web application that can be accessed inside the VPC. |
@sulochanapradhan @sumanashrestha |
A dashboard which plots schools and center on a map.
Preferred solution:
The text was updated successfully, but these errors were encountered: