Git Product home page Git Product logo

waldo323 / schedcsv Goto Github PK

View Code? Open in Web Editor NEW
5.0 6.0 2.0 33.9 MB

seemingly simple project with the goal of parsing a csv file currently from a google spreadsheet csv export, the output is relevant information which is particularly useful output files which are used by a convention for various things like the printed program book, signs for rooms, calendars. Also other scripts which help create html content for the website for use before the programming scheduling is complete.

Shell 0.87% Python 16.27% HTML 82.86%
hacktoberfest

schedcsv's Introduction

schedcsv

seemingly simple project with the goal of parsing a csv file from an export from the head of programming and generating output files which are particularly useful to the upcoming Penguicon (on the master branch). typically the previous years will be made into a branch named the same as the Penguicon main event was held

I have started re-writing the app with the csv_reader.py as my start

usage:

  • download the repository
  • update variables which are different in the current year if needed in schedcsv.py, getsched.sh
  • until sorting is done in the script, make sure that the spreadsheet is sorted the way you would like
    • with this suggested sort order the schedule be sorted into whether it is an all day event, then for each day the times will be in order with the rooms in alphabetical order name(Title) (A->Z) room(Location) (A->Z) start time (A->Z) startday (A->Z) all day (Z->A, since True means all day event)
      • sorting is now in the script... :)
  • make sure the spreadsheet link is correct in getsched.sh
  • run getsched.sh to get the spreadsheet and process it
  • if you have access to the git repo you can run getrunpush.sh, otherwise you'll want to comment out the git push

current output:

  • custom xml for program book (currentyear.penguicon.final.schedule.xml, penguicon.schedule.xml)
  • list of speakers (./output/2015.penguicon.speakers.txt)
  • list of speakers giving 3+ "hours" of talks ( an hour in this case is defined as 50 minutes...I think) (./output/2015.penguicon.speakers.3plus.txt)
  • full schedule output into a csv which google calendar is be able to import (difficult to use as so many events are at the same time) (./output/calendars/currentyear.penguicon.fullcalendar.csv)
  • schedule by track in a (google or other ical) calendar importable csv format (./output/calendars/)
  • schedule by speaker in a (google or other ical) calendar importable csv format (./output/schedbyspeaker/)
  • zip of all speakers calender importable csv files (./output/schedsbyspeaker.zip)
  • schedules by room for dubugging (./output/schedbyroom/)
  • schedules by room for use in making signs for each room (./penguicon.schedules.per.room.xml)

Running wish list:

  • work with tuxtrax https://github.com/MattArnold/tuxtrax
  • split code into separately functioning bits
    • bring in the schedule (or use the parts needed from the db)
  • process the schedule into usable pieces for later use (event start time, end times, location, speakers etc)
    • not needed if working with tuxtrax
  • clean the text so that it will be useable in various formats (specaial characters changed to uable formats in the cases of the InDesign importable xml file, no new lines for xml and csv outputs etc)
    • work with tuxtrax to make sure the field clean before getting them so the data can be entered directly into templates
  • create output files in all the various or optionally just particular formats
  • upload to github or other public place for collaboration with staff and the public
  • add template files for each type of output
  • output of a file with each event with special characters which should be cleaned up in the source document and note or hi-light which characters
    • this is helpful even when the program cleans the entries since some of those characters make it harder to fix the source spreadsheet
  • trifold grid csv
    • need to add addressing or a map of somesort so that I can pull each item into the csv without a computationally expensive loop setup....there are already way too many loops in this script
    • probably something where the script could call room.time and it would get the title of the entries in that slot
    • ....maybe not for this year since there is a spreadsheet with schedule in a very similar format...so exporting that as csv might work better for now

schedcsv's People

Contributors

waldo323 avatar dependabot[bot] avatar craigmaloney avatar hufman avatar mattarnold avatar

Stargazers

Steve Marsh avatar Stephen Koller avatar Steve Marsh avatar Justin Triplett avatar  avatar

Watchers

 avatar Justin Triplett avatar  avatar  avatar  avatar Steve Marsh avatar

schedcsv's Issues

add output files

  • calendar views per track and one for all the GoHs
  • csv which could potentially be used by attendies... additional "interested in" column or something like that

code separation needed

input, logic and output operations should be separated to accommodate different inputs and scenarios (the data could come from different sources every year and once collected the data could be used to output to different formats for program book, calendar etc)

Sorting should be handled in script

Right now the script assumes the spreadsheet has been sorted. This is a bad assumption to make

The schedule should be sorted by room then time then day. This was when someone looks at the output the rooms will always be in the same order within each time

Hours Out Of Place

1AM Saturday events are listed after 4PM Saturday, with the exception of "1 AM Piko Piko (Various Performances)" which is listed between 7PM and 8PM Saturday.

12AM Sunday events are listed between 9AM and 10AM on Sunday.

Saturday events which are listed on Sunday:
9AM "Javascript Event Loop"
5PM "Periodic Table of Kittens"
7PM "Radio Spectrum"

Friday events which are listed on Sunday:
4PM "Tao of Kitteh"

9AM Sunday "Pillow Fight" is listed after 4PM Sunday.

"Best Brain Hacks" is listed in the original source document as Sunday 11PM, so I'll talk to Tim about that one.

check for time place conflicts

create output which shows if a person is scheduled in multiple places at once, and if a place has multiple events happening at the same time

change speaker output

Change it so that it can easily be imported by Google calendar thus way it could be useful for speakers or those wanting to attend certain speakers talks

possible error time calculation

Friday 5PM column actually labeled 4PM? I see a bunch of rooms
double-booked, and the schedule goes directly from 4PM events to 6PM
events.

Durations Incorrect

None of the durations in the XML are correct. Each successive timeslot increments the duration like so:
<duration>34 hours and 50 minutes</duration> <duration>33 hours and 50 minutes</duration> <duration>32 hours and 50 minutes</duration>
...etc.

csv ouptup needed for calendar import

csv output needed for calendar import

should be in the form:

Subject, Start Date,Start Time, End Date, End Time, All Day Event, Description, Location, Private
ExampleSubject, 2/20/2013, 7:10 PM, 5/15/2020, 10:00 PM, FALSE ExampleDescription ExampleLocation, TRUE
ExampleSubject2, 2/20/2013, 7:30 PM, 5/16/2020, 10:30 PM, FALSE, ExampleDescription2, ExampleLocation2, TRUE

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.