From 517cad7e8d2e5081016f1a9da508ee654f4e61c0 Mon Sep 17 00:00:00 2001 From: Daniel Simmons-Ritchie <37225902+SimmonsRitchie@users.noreply.github.com> Date: Tue, 16 Jul 2024 14:37:05 -0500 Subject: [PATCH] Fix spider: icjia --- .../il_criminal_justice_information.py | 336 +- .../il_criminal_justice_information.html | 6147 ------------ .../il_criminal_justice_information.json | 8279 +++++++++++++++++ tests/test_il_criminal_justice_information.py | 73 +- 4 files changed, 8439 insertions(+), 6396 deletions(-) delete mode 100644 tests/files/il_criminal_justice_information.html create mode 100644 tests/files/il_criminal_justice_information.json diff --git a/city_scrapers/spiders/il_criminal_justice_information.py b/city_scrapers/spiders/il_criminal_justice_information.py index 279724eed..98c7f3fdb 100644 --- a/city_scrapers/spiders/il_criminal_justice_information.py +++ b/city_scrapers/spiders/il_criminal_justice_information.py @@ -1,235 +1,163 @@ -import re -from datetime import datetime -from itertools import chain +import json +from datetime import datetime, timedelta +from urllib.parse import urljoin +import scrapy from city_scrapers_core.constants import ( ADVISORY_COMMITTEE, BOARD, - CANCELLED, COMMISSION, COMMITTEE, - NOT_CLASSIFIED, ) from city_scrapers_core.items import Meeting from city_scrapers_core.spiders import CityScrapersSpider +from dateutil import parser +from dateutil.tz import gettz class IlCriminalJusticeInformationSpider(CityScrapersSpider): name = "il_criminal_justice_information" agency = "Illinois Criminal Justice Information Authority" timezone = "America/Chicago" - start_urls = ["http://www.icjia.state.il.us/about/overview"] - location = { - "name": "Illinois Criminal Justice Information Authority", - "address": "300 W Adams St, Suite 200, Chicago, IL 60606", - } + attachments_base_url = "https://agency.icjia-api.cloud" - def parse(self, response): - """. - `parse` should always `yield` Meeting items. - - Change the `_parse_title`, `_parse_start`, etc methods to fit your scraping - needs. + def start_requests(self): + """ + Request agency's GraphQL endpoint to get all meetings. + """ + query = """ + query allMeetings { + meetings(sort: "start:desc") { + id + title + slug + summary + created_at + updated_at + published_at + isCancelled + start + end + category + body + posts { + title + slug + __typename + } + events { + title: name + slug + __typename + } + tags { + title + slug + __typename + } + attachments { + id + formats + size + name + ext + url + updated_at + created_at + hash + __typename + } + external { + title + url + __typename + } + __typename + } + } """ - last_year = datetime.today().replace(year=datetime.today().year - 1) - for item in response.css(".panel"): - desc = self._parse_description(item) - title = self._parse_title(item) - classification = self._parse_classification(title) - location = self._parse_location(desc) - start_str, end_str = self._parse_time_str(desc) - exceptions = self._parse_exceptions(item) - - for row in item.css("tbody tr"): - # Ignore expand/collapse rows - if len(row.css("td.hiddenRow")) > 0: - continue - row_loc = location - row_end_str = end_str - start, asterisks = self._parse_start(row, start_str) - if not start: - continue - # Check if asterisks exist and strikethrough not present - if ( - asterisks - and asterisks in exceptions - and len(row.css("strike, s")) < 1 - ): - exception = exceptions[asterisks] - row_start_str, ex_end_str = self._parse_time_str(exception) - if ex_end_str: - row_end_str = ex_end_str - start = self._parse_start_exception( - exception, row_start_str or start_str - ) - row_loc = self._parse_location(exception, default=location) - - if start < last_year and not self.settings.getbool( - "CITY_SCRAPERS_ARCHIVE" - ): - continue - links = self._parse_links(row, response) - meeting = Meeting( - title=title, - description="", - classification=classification, - start=start, - end=self._parse_end(start, row_end_str), - all_day=False, - time_notes="", - location=row_loc, - links=links, - source=response.url, - ) - # Cancelled if there is a strikethrough and no links present - if len(row.css("strike, s")) > 0 and len(links) == 0: - meeting["status"] = CANCELLED - else: - meeting["status"] = self._get_status(meeting) - meeting["id"] = self._get_id(meeting) - yield meeting - - def _parse_title(self, item): - """Parse or generate meeting title.""" - title_str = " ".join(item.css(".panel-heading *::text").extract()) - clean_title = re.sub(r"\s+", " ", title_str).strip() - return re.search(r"(?<=\d{4}\s).*(?=Meetings)", clean_title).group().strip() - - def _parse_description(self, item): - """Parse or generate meeting description. Not used in output.""" - desc = item.css(".panel-body > p::text").extract_first() - if desc: - return re.sub(r"\s+", " ", desc).strip() - - def _parse_classification(self, title): - """Parse or generate classification from allowed options.""" - if "advisory" in title.lower(): - return ADVISORY_COMMITTEE - if "board" in title.lower(): - return BOARD - if "committee" in title.lower(): - return COMMITTEE - if "task force" in title.lower(): - return COMMISSION - return NOT_CLASSIFIED - def _parse_start(self, item, time_str): - """Parse start datetime as a naive datetime object.""" - raw_date_str = " ".join(item.css("td:first-of-type *::text").extract()) - date_str = re.sub(r"\s+", " ", raw_date_str).strip() - if "rescheduled" in date_str.lower(): - date_str = re.split(r"Rescheduled (to )?", date_str, flags=re.IGNORECASE)[ - -1 - ] - date_str = date_str.replace("Rescheduled", "").strip() + # Prepare the payload + payload = {"operationName": "allMeetings", "variables": {}, "query": query} - asterisks = re.search(r"\*+", date_str) - if asterisks: - asterisks = asterisks.group() - date_str = date_str.replace(asterisks, "") - if not date_str.strip(): - return None, None - start = self._parse_dt_str(date_str, time_str) - return start, asterisks + # Convert the payload to a JSON string + body = json.dumps(payload) - def _parse_end(self, start, time_str): - """Parse end time if provided""" - if time_str: - date_str = start.strftime("%B %d, %Y") - return self._parse_dt_str(date_str, time_str) + # Send the POST request + yield scrapy.Request( + "https://agency.icjia-api.cloud/graphql", + method="POST", + body=body, + headers={"Content-Type": "application/json"}, + callback=self.parse, + ) - def _parse_time_str(self, desc): - """Parse start time from description if available""" - if desc is None: - return None, None - time_match = [ - m - for m in re.findall(r"\d{1,2}(?:\:\d{1,2})?\s*[apAP][\.mM]{1,3}", desc) - if m - ] - start_str = None - end_str = None - if len(time_match) == 1: - start_str = time_match[0] - elif len(time_match) == 2: - start_str, end_str = time_match - elif len(time_match) == 4: - start_str = time_match[2] - end_str = time_match[3] - # Remove spaces to make parsing more uniform - if start_str: - start_str = re.sub(r"[\. ]", "", start_str) - if end_str: - end_str = re.sub(r"[\. ]", "", end_str) - return start_str, end_str + def parse(self, response): + data = json.loads(response.text) + # save to tests dir + + for item in data["data"]["meetings"]: + title = item["title"] + title_with_status = f"{title} (Cancelled)" if item["isCancelled"] else title + start = self.parse_datetime(item["start"]) + # skip meetings older than 90 days + ninety_days_ago = datetime.now() - timedelta(days=90) + if start < ninety_days_ago: + continue + meeting = Meeting( + title=title_with_status, + description=item["summary"], + classification=self._parse_classification(item["title"]), + start=start, + end=self.parse_datetime(item["end"]), + all_day=False, + time_notes="", + location={ + "name": "TBD", + "address": "", + }, + links=self._parse_links(item), + source=response.url, + ) + meeting["status"] = self._get_status(meeting) + meeting["id"] = self._get_id(meeting) + yield meeting - def _parse_dt_str(self, date_str, time_str): - # Remove everything after the year - dt_str = re.search(r".*\d{4}", date_str).group() - date_fmt = "%B %d, %Y" - if time_str: - dt_str = "{} {}".format(dt_str, time_str) - if ":" in time_str: - date_fmt += " %I:%M%p" - else: - date_fmt += " %I%p" - return datetime.strptime(dt_str, date_fmt) + def parse_datetime(self, dt_str): + """ + Parse ISO string into datetime, convert to local timezone, + then create timezone naive datetime object. + """ + dt = parser.parse(dt_str) + local_tz = gettz(self.timezone) + local_dt = dt.astimezone(local_tz) + naive_dt = local_dt.replace(tzinfo=None) + return naive_dt - def _parse_location(self, desc, default=location): - """Parse or generate location.""" - # Split on string used before the location and time - if not desc or not any(w in desc for w in ["Chicago", "IL", "Illinois"]): - return default - split_str = "location: " if "location: " in desc else " at " - desc_split = desc.split(split_str) - loc_split = desc_split[-1].split(", ") - if len(loc_split) < 4: - name = "" - address = desc_split[-1].replace(".", "") - else: - name = re.sub(r"^the ", "", loc_split[0]) - address = ", ".join(loc_split[1:]).replace(".", "") - return { - "address": address, - "name": name, + def _parse_classification(self, title): + """ + Classifies the meeting based on the meeting title. + If no specific keywords match, defaults to COMMISSION. + """ + category_map = { + "Board": BOARD, + "Committee": COMMITTEE, + "Advisory Committee": ADVISORY_COMMITTEE, } + return category_map.get(title, COMMISSION) - def _parse_links(self, item, response): - """Parse or generate links.""" + def _parse_links(self, meeting): + # Extracting links from attachments and external links = [] - for link in chain( - item.css("a"), - item.xpath( - "following-sibling::tr[position()=1]//td[contains(@class, 'hiddenRow')]//a" # noqa - ), - ): + attachments = meeting.get("attachments", []) + for attachment in attachments: links.append( { - "title": re.sub( - r"\s+", " ", " ".join(link.css("*::text").extract()) - ).strip(), - "href": response.urljoin(link.attrib["href"]), + "href": urljoin(self.attachments_base_url, attachment["url"]), + "title": attachment["name"], } ) + external = meeting.get("external", {}) + if external: + links.append({"href": external["url"], "title": external["title"]}) return links - - def _parse_exceptions(self, item): - """ - Parse any exception with an asterisk, return dictionary of asterisks and text - """ - exception_map = {} - desc_items = item.css(".panel-body > p::text").extract() - if len(desc_items) < 2: - return exception_map - for desc in desc_items[1:]: - clean_desc = re.sub(r"\s+", " ", desc).strip() - asterisks = re.search(r"^\*+", clean_desc) - if asterisks: - asterisk_str = asterisks.group() - exception_map[asterisk_str] = clean_desc[len(asterisk_str) :].strip() - return exception_map - - def _parse_start_exception(self, exception, start_str): - """Parse meeting start time from exception text""" - date_match = re.findall(r"\w{3,10} \d{1,2}, \d{4}", exception) - return self._parse_dt_str(date_match[-1], start_str) diff --git a/tests/files/il_criminal_justice_information.html b/tests/files/il_criminal_justice_information.html deleted file mode 100644 index 0cbc69d3c..000000000 --- a/tests/files/il_criminal_justice_information.html +++ /dev/null @@ -1,6147 +0,0 @@ - - -
- - - - -Created in 1983, the Illinois Criminal Justice Information Authority is a state agency dedicated to improving the administration of criminal justice. -
-The Authority brings together key leaders from the justice system and the public to identify critical issues facing the criminal justice system in Illinois, and to propose and evaluate policies, programs, and legislation that address those issues. The agency also works to ensure the criminal justice system in Illinois is efficient and effective. The Authority’s specific powers and duties are detailed in the Illinois Criminal Justice Information Act [ 20 ILCS 3930 et. seq. ]. -
-The statutory responsibilities of the Authority fall under the categories of grants administration, research and analysis, policy and planning, and information systems and technology. To display the Authority organization chart, click here. -
-For information about contacting the Authority, please see this page. -
-
Former Chief Circuit Judge (11th Circuit) Elizabeth Robb was named chairman of the Illinois Criminal Justice Information Authority in March 2015. Ms. Robb brings more than 30 years of legal experience to ICJIA. She served as a trial judge for 22 years on the 11th Judicial Circuit Court of Illinois, and was the chief judge from 2004 to 2014. In that role, in addition to presiding over trials, she had administrative responsibility for the 20 judges in the court, oversaw court reporters, probation officers, and other court staff. Prior to becoming a judge, Ms. Robb was an attorney at Reynard & Robb Law Offices (1982-1987) and the Robb Law Office (1987-1993). Ms. Robb earned her bachelor’s degree from Illinois Wesleyan University and her law degree from Loyola University of Chicago. -
- - -
Patrick Delfino was appointed director of the Office of the State’s Attorneys Appellate Prosecutor in December 2008. Mr. Delfino is a graduate of the University of Notre Dame Law School and is an experienced trial and appellate attorney. Before joining the appellate prosecutor’s office as assistant director, Mr. Delfino served as a drug attorney and court specialist with the Illinois Law Enforcement Commission and as the Cook County State’s Attorney’s Office Director of Planning and Special Projects.
-Mr. Delfino has taught both at college and law school, and he is a member of the Sex Offender Management Board and the Children’s Justice Task Force of the Department of Children and Family Services. Mr. Delfino also serves as executive director of the Illinois State’s Attorneys Association. He also serves on the Illinois Sex Offender Management Board and on the Children’s Justice Task Force of the Department of Children and Family Services. He is a past president of the Illinois Academy of Criminology and a member of the Chicago Bar Association, Illinois State Bar Association, and the National District Attorneys Association. -
- - -
Dwight Baird was elected Kendall County Sheriff in 2014. Mr. Baird began his law enforcement career with the Kendall County Sheriff’s Office in 1990. He later transferred to the Oswego Police Department, where he rose through the ranks to become Oswego Police Chief, a role he filled from 2003 to 2014. -
-Mr. Baird is a member of the Illinois Sheriffs Association, National Sheriffs Association, International Association of Chiefs of Police, and Illinois Association of Chiefs of Police.He is president of the Northern Illinois Zone of Sheriffs, past President of the North East Multi-Regional Training Board, and current vice chairman of the Federal High Intensity Drug Trafficking Agency. -
-Mr. Baird earned a bachelor’s of science degree in professional studies and criminal justice management form Aurora University and a master’s degree with police executive certification from Western Illinois University.He also is a graduate of the FBI National Academy and the National Sheriff’s Institute. -
-He has been recognized for his achievements throughout his career, which receiving a Life Saving award by the Illinois Police Association and a Medal of Valor award by the Illinois Association of Chiefs of Police and being named 2014 Illinois Crime Commission Police Chief of the Year. -
- - -
John R. Baldwin was named director of the Illinois Department of Corrections in August 2015. Mr. Baldwin is the former director of the Iowa Department of Corrections and brings more than 35 years of corrections experience to the state. He led the Iowa Department of Corrections from January 2007 until his retirement in January 2015. As the director, he oversaw a staff of nearly 4,000 officers who supervised 38,000 offenders. During his tenure, he worked with the Pew-MacArthur Results First Initiative to build a state-specific cost-benefit analysis on the state’s corrections department. The data was used to make more informed policy and budget decisions in an effort to reduce recidivism. Mr. Baldwin began working for the Iowa Department of Corrections in 1983. Before serving in the role of director, Mr. Baldwin was the deputy director of Administration where he oversaw the budget, personnel, and use of evidence-based practices. Prior to that, he supervised the business office for a forensic psychiatric hospital that was under the control of the Iowa Department of Corrections. Mr. Baldwin holds a master’s degree in political science from Iowa State University and a bachelor’s degree in economics from the University of Iowa.
- - -
Carla E. Barnes was appointed McLean County Chief Public Defender in fall 2014. Ms. Barnes is the first African American to lead the office, as well as the first African-American McLean County administrator. -
-Ms. Barnes joined the McLean County Public Defender’s Office in 2001 as an assistant public defender in the Traffic Division. She was later promoted to supervise the Misdemeanor Division while maintaining a felony caseload. Her case assignments ranged from felony traffic to murder charges. -
-Prior to joining the McLean County Public Defender’s Office, Ms. Barnes was employed in private practice. She later served in the Cook County State’s Attorney’s Office Child Support Division. She also served in the McLean County State’s Attorney’s Office. While Ms. Barnes flourished as a prosecutor, she felt that she could affect more change as a public defender. -
-Ms. Barnes holds a bachelor’s degree in criminal justice from Illinois State University and a juris doctorate from The John Marshall Law School. -
- - -
Dorothy Brown was first elected Cook County Circuit Clerk in 2000, becoming the first African American to hold the position. She was re-elected in 2004 and again in 2008. Ms. Brown holds a master’s in business administration, a juris doctorate, and is a certified public accountant. As the official keeper of records for all judicial matters brought into one of the largest unified court systems in the world, Ms. Brown manages an annual operating budget of more than $100 million and a workforce of more than 2,300 employees.
- - -
Amy P. Campanelli was sworn in as the 10th Cook County Public Defender in April 2015. Ms. Campanelli’s appointment was the culmination of 27 years of service representing the indigent accused. She started as an assistant public defender in the office’s Juvenile Division in 1987, after three years she moved to the Felony Trial Division, where she remained until 1998. Her caseload included felonies of every stripe, from low level drug cases to capital murder.
-From 1998 until 2003, Ms. Campanelli managed criminal cases in private practice. She returned to the Cook County Public Defender’s Office in 2003 as an attorney supervisor assigned to the Felony Trial Division. She became chief of the Bridgeview Courthouse in 2008 and then transitioned to capital case coordinator in 2010.
-After the death penalty was abolished in Illinois, Ms. Campanelli served as deputy chief of the Homicide Task Force and deputy chief of the Felony Trial Division. In 2012, she was promoted to deputy public defender in charge of Cook County’s five suburban districts, a position she held until her appointment as the Cook County Public Defender. -
-Over the years, Ms. Campanelli has been a frequent lecturer and trainer on mental health issues, trial advocacy, trial preparation, and therapeutic courts. She received a bachelor’s degree from the University of Illinois and a juris doctorate from Chicago-Kent College of Law. Ms. Campanelli is a lifelong member of the Delta Delta Delta Sorority and a past president of the Southwest Suburban Alumni Association.
-
Tom Dart was first sworn in as the 52nd Cook County sheriff in 2006. Mr. Dart began his career in public service as an assistant state’s attorney in Cook County. In 1992, Mr. Dart won a seat in the Illinois House, where he sponsored Mayor Daley’s Safe Neighborhoods Act and authored several state laws designed to crack down on child sex offenders, including a statute that targeted child predators that use the Internet to lure young victims. Mr. Dart also wrote the Sexually Violent Predators Commitment Act, enabling judges to detain sexual predators in state mental health facilities if they believe the offender is likely to commit new sex crimes. Mr. Dart joined the Cook County Sheriff’s Office in 2003, where he served as chief of staff to former Cook County Sheriff Michael F. Sheahan. -
- - -
Debra Dyer-Webster is interim director of the Illinois Department of Children and Family Services. She has worked for DCFS for more than 25 years, serving in numerous capacities that included chief deputy director, guardianship administrator, affirmative action deputy director, chief deputy general counsel, deputy director of external affairs, child protective services supervisor, investigator, and child welfare specialist. Ms. Dyer-Webster also is a former Cook County assistant state’s attorney.
Ms. Dyer-Webster holds a juris doctorate from the Chicago Kent College of Law at the Illinois Institute of Technology, a master’s degree from the University of Chicago School of Social Service Administration, and a master’s degree in education and a bachelor’s degree in social science from Jackson State University.
- - -
Dr. Ngozi Ezike is acting director of the Illinois Department of Public Health (IDPH). Dr. Ezike is a board-certified internist and pediatrician who comes to IDPH from the Cook County Department of Public Health (CCDPH), where she served for more than 15 years, and is medical director at the Cook County Juvenile Temporary Detention Center. Prior to joining CCDPH, Dr. Ezike served as Austin Health Center medical director where she actively engaged with the community on a variety of health initiatives. She also has delivered inpatient care at Stroger Hospital and primary and preventive care in community and school-based clinics.
Dr. Ezike is a national policy advisor on juvenile correctional health topics who has presented at numerous local and national conferences for medical professionals and youth audiences alike. She received a medical degree from University of California at San Diego and a bachelor’s degree in chemistry from Harvard University. Dr. Ezike also holds a management certificate from Harvard Business School and is an assistant professor in the Department of Pediatrics at Rush University.
- - -
Brent Fischer was appointed executive director of the Illinois Law Enforcement Training and Standards Board in December 2015. Prior to his appointment, Mr. Fischer served for 17 years as Adams County Sheriff. He began his career at the Adam County Sheriff’s Office as a court security officer in 1991 and was hired as a deputy sheriff in 1994. Mr. Fischer served 10 years as a board member of the Illinois Law Enforcement Training and Standards Board, including two years as the board’s chairman, and he is a past president Illinois Sheriff’s Association. -
- - -
Kimberly M. Foxx was elected Cook County State’s Attorney in 2016 and is the first African-American woman to lead the office. Prior to being elected state’s attorney, Ms. Foxx served as chief of staff or Cook County Board President Toni Preckwinkle. As President Preckwinkle’s senior advisor and lead strategist, she oversaw a $4 billion annual budget. She also was the lead architect of the county’s criminal justice reform agenda to address racial disparities in the criminal and juvenile justice systems. Her efforts contributed to a significant drop in the Cook County jail population while promoting public safety. -
-A veteran prosecutor, Ms. Foxx served as an assistant state’s attorney in the Cook County State’s Attorney’s Office for 12 years. She has also served as a guardian ad litem in the Cook County Public Guardian’s Office. -
-Ms. Foxx is a board member at Adler University and Free Spirit Media, where she also served as board president. Ms. Foxx is a former board chair of Planned Parenthood of Illinois and a past president of the National Black Prosecutors Association-Chicago Chapter. She is a member of Leadership Greater Chicago and the Chicago Council of Lawyers. -
-Born and raised on Chicago’s Near North Side in Cabrini Green, Ms. Foxx earned a bachelor’s degree in political science from Southern Illinois University (SIU) and a juris doctorate from the SIU School of Law. -
- - -
Eddie Johnson was appointed Chicago Police Department Superintendent in April 2016. Since his appointment, Mr. Johnson has set out to implement systemic reforms around police accountability and transparency and build a culture within the department to strengthen public trust and reduce gun violence.
-
As superintendent, Mr. Johnson has developed a comprehensive violence reduction strategy which will add nearly 1,000 police officers to the streets of Chicago, invested in technology so officers can police smarter and more effectively, and initiated a comprehensive policy agenda to create a culture of accountability in the criminal justice system for repeat gun offenders that drive the majority of Chicago violence. -
-Mr. Johnson joined the Chicago Police Department in 1988, serving for the majority of his career within the Detective Division and Gang/Tactical units and Patrol Bureau, where he rose to the rank of chief. He is a Chicago native who grew up in Cabrini Green and on the city’s South Side. He is a member of the Executive Board of NOBLE’s Chicago Chapter, the St. Jude Board of Directors, and the Chicago Police Memorial Foundation Assistance Committee. -
-Mr. Johnson is a recipient of the Chicago Defender Men of Excellence Award and has a received several department commendations. He received a bachelor’s degree from Governors State University and is expecting his master’s degree in public policy and administration with a specialization in public safety and national security from Northwestern University in 2017. -
- - -
Maureen Josh is the DeKalb County Circuit Court Clerk, a position she has held for more than 30 years. As keeper of the records, Ms. Josh manages a team of 40 clerks, while working with members and agencies of the court system and the general public. Ms. Josh has served as president of the Northeast Illinois Circuit Clerk’s Association since 1989 and is a member of the Illinois Association of Circuit Court Clerks Executive Board and Legislative Committee. -
-In addition to her current service as an Authority Member, Ms. Josh served on the Authority from 2000 to 2006. She also currently serves as a Supreme Court appointee on the Statutory Court Fee Task Force and the e-Business Policy Advisory Board Technical Committee. -
-She has received numerous honors and awards for her work, including the 2013 NIU College of Law Alumni Council’s Public Service Award and Circuit Clerk of the Year in 1999, 2002, 2004 and 2015. Ms. Josh earned her bachelor’s degree in education from the University of Wisconsin, Platteville. -
- - -
Brendan Kelly is acting director of the Illinois State Police. Mr. Kelly also serves St. Clair County State’s Attorney, a post he’s held since 2010. He previously served as an assistant state’s attorney and has had a wide range of experience with law enforcement. During his military service as an officer in the United States Navy, Mr. Kelly conducted research on Israeli-Palestinian joint police patrols in the Middle East. As an assistant state’s attorney, he served on the Illinois State Bar Association Criminal Justice Section Council. He was a member of the Illinois Juvenile Justice Commission, the Illinois Criminal Justice and Sentencing Reform Commission, and the Attorney General’s Sexual Assault Task Force.
Mr. Kelly received a juris doctor from the St. Louis University School of Law and a bachelor’s degree in government and international relations from the University of Notre Dame.
- - -
Bryan Kibler is the Effingham County State’s Attorney. Mr. Kibler’s office prosecutes 250 felonies and 500 misdemeanors a year, as well as advises the county on civil issues. Previously, Mr. Kibler owned his own practice where he concentrated on criminal defense and family law. Mr. Kibler earned his bachelor’s degree from Northern Illinois University and his law degree from Southern Illinois University.
- - -
Mr. Perez started his law enforcement career with ISP as a trooper in 1986 and steadily rose through the ranks on a variety of assignments. As an ISP Major, he oversaw all department law enforcement activities and more than 800 sworn officers and civilian staff across northern Illinois. A command officer for more than 14 years, he supervised patrol, investigative and specialty units, served as a police academy instructor, was responsible for the protection of Illinois Constitutional Officers, and planned the safety and security for several significant events, including the 2012 NATO Summit in Chicago. Mr. Perez is a member of the Chicago FBI Joint Terrorism Task Force Executive Board, the American Public Transportation Association Security Peer Advisory Group, and the Association of American Railroads Rail Security Working Committee. He was recipient of the 2014 Hector Jordan Lifetime Achievement Award from the Hispanic Illinois State Law Enforcement Association.
-
Toni Preckwinkle was elected Cook County Board President in November 2010. Ms. Preckwinkle has been a dedicated community leader for more than two decades, providing independent and progressive leadership founded on experience, coalition building, and a commitment to practical results. Prior to joining the Cook County Board, Ms. Preckwinkle served as alderman of Chicago’s 4th Ward for 19 years. In that time, Ms. Preckwinkle built a professional and responsive ward organization and worked tirelessly to meet the diverse needs of her constituents. She fought for greater funding for education and affordable housing in her ward. She also sponsored the living wage and affordable housing ordinances, and was a lead plaintiff in a lawsuit to institute a more racially equitable map of Chicago’s ward boundaries. -
-Prior to joining Chicago City Council, Ms. Preckwinkle taught high school history in Chicago for 10 years. During that time, she ran a non-profit organization aimed at neighborhood improvement. Ms. Preckwinkle was recipient of the IVI-IPO Best Alderman Award in 1993, 1995, 1997, 1999, 2005 and 2008, and the 1997 and 2009 Leon Despres Awards. She holds a bachelor’s degree and a master’s degree from the University of Chicago. -
- - -
Kwame Raoul was sworn in as the 42nd Attorney General of Illinois in January 2019. He began his legal career as a prosecutor in the Cook County State’s Attorney’s Office, handling matters at the trial and appellate level in the criminal, civil and juvenile divisions of the office. He subsequently served as a senior staff attorney for the City Colleges of Chicago, handling primarily labor and employment matters. Mr. Raoul has also been a partner at two national law firms, serving in the health care and labor and employment practice groups.
In 2004, Mr. Raoul was appointed to serve as the state senator representing the 13th Legislative District, where he was subsequently re-elected on multiple occasions to represent the district. As a senator, Raoul led negotiations and sponsored legislation that eliminated the death penalty, required background checks on private gun transfers, and promoted law enforcement and criminal justice reform.
Mr. Raoul has been recognized for his work on behalf of survivors of sexual assault and domestic violence, which includes passage of the Safe Homes Act and the Sexual Assault Survivors’ Bill of Rights. He earned a bachelor’s degree from DePaul University and his juris doctorate from Chicago-Kent College of Law.
- - -
Jennifer Vollen-Katz is executive director of the John Howard Association. In this role, she monitors conditions and programming in Illinois correction and detention facilities and helps create and implement system-wide operational and policy reform. JMs. Vollen-Katz serves as chairwoman of the State Advisory Board to the Illinois Department of Juvenile Justice. Prior to joining the John Howard Association, Ms. Vollen-Katz was a lecturer in law and a clinical supervisor at the University of Chicago Law School Mandel Legal Aid Clinic Federal Criminal Justice Clinic. She also was a staff attorney with the Federal Defender Program of Northern Illinois, where she represented indigent defendants in federal criminal cases in the Northern District. -
-Ms. Vollen-Katz earned her bachelor’s degree from St. Lawrence University, her juris doctorate from the Georgetown University Law Center, and her master’s degree in criminal justice policy from the London School of Economics in London, England. -
- - -
Paula Wolff is director of the Illinois Justice Project, a civic organization that works to reform the criminal justice system. Ms. Wolff has focused much of her career on justice policy. From 2000 to 2014, she led the Justice and Violence Group of Metropolis Strategies, the predecessor to the Illinois Justice Project. -
-From 1992 to 2000, Ms. Wolff served as president of Governors State University. She was responsible for the management of the university, oversaw faculty, students, the budget and strategic direction. During her tenure, enrollment grew by 22 percent to more than 9,000 students. Ms. Wolff also served as the director of policy and planning for former Gov. James Thompson. In that role, she directed development and implemented policy at all levels of state government. She also worked for former Governor Richard Ogilvie. -
-Ms. Wolff earned her bachelor’s degree from Smith College and has her master’s degree and doctorate in political science from the University of Chicago. -
- - -2019 Authority Board Meetings begin at 10 - a.m. at Illinois Criminal Justice Information Authority, 300 W. Adams St., Suite 200,Chicago, IL - 60606, 2nd Floor Building Conference Room.
- -- | -||||||
---|---|---|---|---|---|---|
December 19, 2019 - | -- - - | -|||||
September 19, 2019 | -- - - | -|||||
June 27, 2019 - | -- - - | -|||||
April 24, 2019 - | -- Materials - - | -|||||
- - - | -
These are proposed scheduled dates and are - subject to change.
-2018 Authority Board Meetings begin at 10 - a.m. at Bilandic Building, 160 North LaSalle Street, Room N505, Chicago.
- -- | -||||||
---|---|---|---|---|---|---|
November 29, 2018 Rescheduled to December 11, - 2018** - | -- Materials - - Minutes - | -|||||
August 30, 2018 Rescheduled to August 22, 2018* - | -- - - Minutes - | -|||||
May 31, 2018 - | -- Materials - - - | -|||||
February 15, 2018 - | -- Materials - - - | -
* Authority Quarterly Board meeting has been - rescheduled from Thursday, August 30, 2018 to Wednesday, August 22, 2018. At the June Board meeting - it was discussed that the August Board Meeting is moving to Springfield for the VOCA All-Sites - Conference. The ICJIA Board Meeting at VOCA All-Sites Conference it is scheduled for Wednesday, - August 22, 2018 at 10:45 AM to 12 PM at the Crowne Plaza Springfield, 3000 South Dirksen Parkway, - Springfield, IL 62703.
-** Authority Quarterly Board meeting has - been rescheduled from Thursday, November 29, 2018 to Tuesday, December 11, 2018 at 1 PM at ICJIA 300 - W. Adams St., Suite 200, 2nd Floor Building Conference Chicago, IL 60606.
-2017 Authority Board Meetings begin at 9 - a.m. to 11:30 a.m. at Bilandic Building, 160 North LaSalle Street, Room N505, Chicago.
- -- | -|||||||
---|---|---|---|---|---|---|---|
December 1, 2017** - | -- - - - | -||||||
November 30, 2017** - | -- Materials - - - | -||||||
September 8, 2017 - | -- Materials - - Minutes - | -- - | -|||||
-
-
-
- |
- |||||||
June 2, 2017 - | -- Materials - - Minutes - | -||||||
March 3, 2017 - | -- Materials - - Minutes | -||||||
January 27, 2017* - | -- Materials - Minutes | -
* Authority Quarterly Board meeting has been - rescheduled from Friday, December 2, 2016 to Friday, January 27, 2017 at 9 a.m. to 11:30 a.m. at the - Michael A. Bilandic Building, 160 North LaSalle Street, Room N505, Chicago, Illinois.
-** Authority Quarterly Board meeting has - been rescheduled from Friday, December 1, 2017 to Thursday, November 30, 2017.
-2016 Authority Board Meetings begin at 9 - a.m., at ICJIA, 300 West Adams Street, 2nd Floor, Chicago, Illinois, 60606. -
- - - -- | -||||||
---|---|---|---|---|---|---|
December 2, 2016*** | -- - - - | -|||||
September 16, 2016** - | -- Materials - - | -|||||
June 3, 2016 - | -- Materials - - - Minutes - | -|||||
March 11, 2016* - | -- Materials - Minutes - | -- - - - | -||||
-
-
-
-
-
-
-
-
- |
-
*** Authority Quarterly Board meeting has - been rescheduled from Friday, December 2, 2016 to Friday, January 27, 2017 at 9 a.m. to 11:30 a.m. - at the Michael A. Bilandic Building, 160 North LaSalle Street, Room N505, Chicago, Illinois.
-** This is a rescheduled date, the - original scheduled meeting was Friday, September 9, 2016 and has been changed to Friday, - September 16, 2016 at 9 AM. There is a Time Change for the Friday, September 16, Board - Meeting to 2:00 PM to 4:30 PM at the following location: Michael A. Bilandic - Building, 160 North LaSalle Street, Room N505, Chicago
-* This is a rescheduled date, the - original scheduled meeting was March 4, 2016 and has been changed to March 11, 2016 at 9 AM at - the following location: Michael A. Bilandic Building, 160 North LaSalle Street, Room N505, - Chicago
-The 2018 Authority AD HOC Board Committee is - a newly formed committee, which will evaluate the infrastructure of our Board and guide the content - of quarterly meetings.
- -- | -||||||
---|---|---|---|---|---|---|
November 13, 2018 - | -- Materials - - - | -|||||
September 18, 2018 - | -- Materials - - Minutes - | -|||||
July 12, 2018 - | -- Materials - - Minutes - | -
2019 Authority Budget Committee Meetings - begin at 10 a.m., at ICJIA, 300 West Adams Street, 2nd Floor, Large Conference Room, Chicago, - Illinois, 60606.
-- | -|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
December 12, 2019 - | -- - - | -||||||||||
October 17, 2019 | -- - | -||||||||||
August 15, 2019 - | -- - - | -||||||||||
June 20, 2019 - | -- - - | ||||||||||
April 18, 2019 - | -- Materials - - | -||||||||||
February 28, 2019 | -- Materials - Summary - - Updated Agenda - | -
2018 Authority Budget Committee Meetings - begin at 10 a.m., at ICJIA, 300 West Adams Street, 2nd Floor, Large Conference Room, Chicago, - Illinois, 60606.
-- | -|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
December 13, 2018 - | -- Materials - - - - Action - Taken - - | -||||||||||
October 18, 2018 - | -- Materials - - Minutes - - Action - Taken - - | -||||||||||
September 4, 2018 - | -- Materials - - Minutes - - Action - Taken - - | -||||||||||
August 14, 2018 - | -- Materials - - Minutes - - Action Taken | - -||||||||||
June 21, 2018 - | -- Materials - Minutes - - Action Taken - | -||||||||||
- Rescheduled* |
- - - - Action Taken - | -||||||||||
February 28, 2018 - | -- Materials - - Minutes - - Action Taken | -
* The ICJIA Budget Committee Meeting for - April 19, 2018 has been Rescheduled to June 21, 2018.
-2017 Authority Budget Committee Meetings - begin at 10 a.m., at ICJIA, 300 West Adams Street, 2nd Floor, Chicago, Illinois, 60606.
- -- | -|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
December 13, 2017 - | -- Materials - - Minutes - - Action Taken - - | -||||||||||
November 16, 2017 - | -- Materials - - Minutes - - Action Taken - - | -||||||||||
October 25, 2017 - | -- Materials - - Minutes - - Action Taken - - | - -||||||||||
September 28, 2017 - | -- Materials - Minutes - - Action Taken - | -||||||||||
July 27, 2017 - | -- Materials - Minutes - Action Taken - | -- - | - -|||||||||
- - | -|||||||||||
May 25, 2017 - | -- Materials - - Minutes - - Action Taken | -||||||||||
- - - - - Action Taken - | -|||||||||||
February 24, 2017* - | -- Materials - Minutes - - Action Taken | -
* The ICJIA Budget Committee Meeting - scheduled for Friday, February 24, 2017 at 10 a.m. at 300 West Adams Street, Suite 200, Chicago.
-2016 Authority Budget Committee Meetings - begin at 9 a.m., at ICJIA, 300 West Adams Street, 2nd Floor, Chicago, Illinois, 60606.
- - - - - - -- | -|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
November 17, 2016 - | -- Materials - - Minutes - - Action Taken - - | -||||||||||
September 16, 2016 - | -- Materials - - Minutes - - Action Taken | -||||||||||
August 18, 2016 - | -- Materials - - Minutes - Action Taken | -- - | - -|||||||||
-
-
-
-
-
- |
- |||||||||||
May 12, 2016 - | -- Materials - Minutes - Action - Taken | -||||||||||
January 19, 2016 - | -- Materials - - Minutes - Action - Taken | -
- | -|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
December 4, 2015 - | -- - - - - - - - - - - - | -October 20, 2015 - | -- - Materials - - - - Minutes - - - - Actions Taken - - | - -||||||||
September 24, 2015 - | -- - Materials - - - Minutes - - - - Actions - Taken - - | -||||||||||
September 11, 2015 - | -- - - - - - - - - - - - | -||||||||||
August 6, 2015 - | -- Materials - - - Minutes - - - Actions - Taken - | -||||||||||
June 19, 2015 - | -- Materials - - Minutes - - - Actions - Taken - | -||||||||||
January 30, 2015 - | -- Materials - - Minutes - - - Actions Taken - | -
2019 Coordinating Council Advisory Committee - Meetings at 1pm, at ICJIA, 300 West Adams Street, 2nd Floor, Large Conference Room, Chicago, - Illinois, 60606.
-- | -||
---|---|---|
December 12, 2019 - | -- - - - - - | -|
October 17, 2019 - | -- - - - - - | -|
August 15, 2019 - | -- - - - - - | -|
June 20, 2019 - | -- - - - - - | -|
April 18, 2019 - | -- - - - - - | -|
February 28, 2019 - | -- - - - - - | -
2018 Coordinating Council Advisory Committee - Meetings at 1pm, at ICJIA, 300 West Adams Street, 2nd Floor, Chicago, Illinois, 60606.
-- | -||
---|---|---|
December 13, 2018 - | -- Agenda - - - - - - | -|
October 18, 2018 - | -- Agenda - - Materials - - Minutes - | -|
August 9, 2018 - | -- Agenda - - - - Minutes - | -|
June 14, 2018 - | -- Agenda - - - - Minutes - | -|
April 19, 2018 - | -- Agenda - - Materials - - Minutes - - | -|
February 28, 2018 - | -- Agenda - - Materials - - - | -
2019 Authority Institutional Review Board - meetings at 1pm, at ICJIA, 300 West Adams Street, 2nd Floor, Chicago, Illinois, 60606.
-- | -||
---|---|---|
April 26, 2019 - | -- Agenda - - - - | -
2018 Authority Institutional Review Board - meetings at 1pm, at ICJIA, 300 West Adams Street, 2nd Floor, Chicago, Illinois, 60606.
-- | -||
---|---|---|
November 1, 2018 - | -- - - - - | -|
October 22, 2018 - | -- Materials - - - - | -|
- Materials - - - - | -||
- Materials - - | -||
May 3, 2018 - | -- Materials - - Minutes - - | -|
March 29, 2018 - | -- Materials - - Minutes | -|
February 1, 2018 - | -- Materials - - Minutes | -
2017 Authority Institutional Review Board - meetings are the third Thursday of the month at 1pm, at ICJIA, 300 West Adams Street, 2nd Floor, - Chicago, Illinois, 60606.
-- | -||
---|---|---|
December 7, 2017 - | -- - Materials - - - Minutes - - | -|
October 19, 2017 - | -- - Materials - - - Minutes - - | -|
July 7, 2017 - | -- - Materials - - - Minutes - - | -|
June 1, 2017 - | -- - Materials - - - Minutes - - | -|
February 16, 2017 - | -- - Materials - - - Minutes - - | -
2016 Authority Institutional Review Board - meetings are the third Thursday of the month at 1pm, at ICJIA, 300 West Adams Street, 2nd Floor, - Chicago, Illinois, 60606.
-- | -||
---|---|---|
November 17, 2016 - | -- - - - - - - - - | -|
August 18, 2016 - | -- Materials - - Minutes - - | -|
May 19, 2016 - | -- - - Materials - - - - - - - - | -|
February 18, 2016 - | -- - Materials - - - - Minutes - - - | -
- | -||
---|---|---|
October 21, 2016 - | -- - Materials - - - - - - - | -
2018 Strategic Opportunities Committee - Meetings at 1pm, at ICJIA, 300 West Adams Street, 2nd Floor, Chicago, Illinois, 60606.
-- | -||
---|---|---|
December 13, 2018 - | -- - - - - - - | -|
October 11, 2018 - | -- - - - - - | -|
August 9, 2018 - | -- - - - - - | -|
June 14, 2018 - | -- - - - - - | -|
April 19, 2018 | -- Agenda - - Materials - - - - | -|
February 28, 2018 - | -- Agenda - - - - - | -
- | -|||||
---|---|---|---|---|---|
December 13, 2017 - | -- Agenda - - - Materials - - - - Minutes - - - | -||||
October 25, 2017 - | -- - Agenda - - - - Materials - - - - Minutes - - | - - | - -|||
-
-
-
-
-
- » Presentation - - |
- |||||
August 29, 2017 - | -- Agenda - - Materials - - - Minutes - - | - - | - -|||
-
-
-
-
-
-
- |
- |||||
June 27, 2017 - | -- Agenda - - Materials - - - Minutes - - | -||||
April 27, 2017 - | -- - Agenda - - - Materials - - Minutes - - | -||||
February 27, 2017 - | -- - Agenda - - - - Materials - - - Minutes - - | -
- | -||
---|---|---|
October 27, 2016 - | -- Agenda - - - - - - Minutes - | -|
July 18, 2016 - | -- Agenda - - - - - - Minutes - | -|
May 25, 2016 - | -- Agenda - - Materials - - Minutes - | -|
April 27, 2016 - | -- - Agenda - - - - - - Minutes - - - | -|
March 29, 2016 - | -- - Agenda and Materials - - - - Minutes - - - | -|
February 25, 2016 - | -- - Agenda - - - - Materials - - - - Minutes - - | -
- | -|||||
---|---|---|---|---|---|
October 19, 2015 - | -- - Materials - - - - Minutes - - - | -- | |||
September 16, 2015 - | -- - Materials - - - - Minutes - - - | - -- | |||
August 27, 2015 - | -- - Materials - - - - Minutes - - - | - -- - - - | -|||
- - | -
- | -|||||
---|---|---|---|---|---|
June 15, 2017 - | -- Agenda - - - - - - - - - - | - -- - - - | -|||
-
-
-
-
- On June 15, 2017, ICJIA welcomed Dr. Alicia Boccellari to discuss the - University of California at San Francisco Trauma Recovery Center program. - - - |
-
For meeting material prior to January, 2015, please see our meeting - archive. -
-