# Project export: Allegra AI

This document was generated by HackStack to give an AI agent context about a hackathon project. Sections are labeled with their provenance; content marked as truncated was cut to keep this document small.

## Project metadata

- Hackathon: TreeHacks 2024
- Tagline: Learn languages through immersion with Allegra AI.
- Devpost: https://devpost.com/software/songvect
- GitHub: https://github.com/Aylin-Ambriz/tree
- Team: 2 GitHub contributor(s) — newt305 (1 commits), Aylin-Ambriz (1 commits)

## Devpost submission (written by the team)

### Inspiration

Growing up, music was a fundamental part of my life. Whether it was singing with my dad after he got off of work each day or blasting Billy Joel after I first got my driver's license; music has been fundamental to my development into a multilingual person. Every time I become addicted to a song in a target language I am learning, my first goal is to translate the song, understand it word by word, and decode the grammatical structure of each line. But doing this manually for all 1109 songs in my playlist became too tiring too quickly, which sparked my inspiration to create Allegra AI. Moreover, I found that leveraging both traditional book study methods with immersive cultural immersion optimizes language acquisition, which Allegra AI aims to incorporate into its model. ##

### What it does

The user creates an account with Allegra AI and initiates their learning by uploading one of their favorite songs in Spanish. Allegra then converts the speech into lyrics and prompts GPT4 to create questions for the user. The user then answers fill in the blank questions about the song and the app computes the user’s accuracy. From there, the user has the option of asking Allegra for help on any general grammatical question, where it then queries the vector DB using a similarity search method until it finds the concept that the user desires to study. How I built it To create this product, I used a Pinecone vector database, text-embedding-3-small, GPT4, Whisper 2, SKLearn k-mean nearest neighbor Machine Learning, Google page rank algorithm, Flask, SQLite, HTML5, CSS, vanilla.js. I first created a login system using SQLite to give each user access to their own unique account. The site then requests the song as an mp3 file from the user and employs the OpenAI Whisper model to convert it to text—GPT4 is then deployed to prepare questions from the lyrics surrounding grammatical concepts and vocabulary. Once the user answers the final questions, the vector database queries what topics the user wants to study (can be any question). I then ran a Sklearn KMeans clustering as well as the Google page rank algorithm (updated once a day) to determine how well the user is progressing on the leaderboard against other users. Challenges I ran into Some challenges I ran into was time. Originally, I had planned this application to be more personalized to the user, but because I was cut short on time, I had to keep features generalized instead of a customized learning platform that relied on a user’s strengths and weaknesses. Another challenge I ran was vectorizing the song itself, because I initially believed that the user could learn new grammatical concepts from lyrics. I quickly realized that this wouldn’t be enough for the user, which prompted me to use a LibreTexts Spanish textbook to supplement the user’s learning. Accomplishments that I am proud of Some accomplishments that I am proud of is the leveraging of technologies that I knew a little of but mastered after creating Allegra AI. I am proud to have created a powerful application that supplements a user’s immersive cultural learning experience with Spanish. Most importantly, I’m glad to have made it out of this project alive and created an optimal product that will propel a user into fluency with Spanish. What I learned A professor told me that back in the day, he was coding in SQLite server. Curiosity took over, but I never really worked with the library. This hackathon really allowed me to meddle with SQLite. Something that I never really thought about was how Google indexes their web pages. After looking for methods that would rank a user by correctness on their exercises, I learned about the Google page rank algorithm and applied it to this project which came out successful.

### What's next

My first course of action is to expand this platform to more languages in addition to Spanish to attract more users. This way, a diverse set of learners can join this platform and interact with other users in their language learning journey. I also hope to gamify Allegra AI more, by incorporating mini Spanish competitions where users compete with each other on their knowledge of their favorite songs and are ranked.

## README (from the GitHub repository)

# tree

## Detected evidence (automated analysis)

Indexed codebase: 1064 recognized source files, 23100 KB.
- CSS (language) — detected in the code
- Flask (technology) — detected in the code
- HTML (language) — detected in the code
- JavaScript (language) — detected in the code
- LangChain (technology) — detected in the code
- OpenAI (technology) — detected in the code
- Python (language) — detected in the code
- TypeScript (language) — detected in the code

## Codebase structure (from repository index)

### Files (120 of 2073)

```
.DS_Store
.gitignore
.idea/inspectionProfiles/profiles_settings.xml
.idea/inspectionProfiles/Project_Default.xml
.idea/misc.xml
.idea/modules.xml
.idea/TheCryptoReview.iml
.idea/vcs.xml
.idea/workspace.xml
.replit
about.html
app.py
back/.gitignore
back/app.py
back/appp.py
back/instance/site.db
back/model.py
back/Mudole.py
back/package.json
back/README.md
back/requirements.txt
back/static/assets/css/icons/tabler-icons/tabler-icons.css
back/static/assets/css/styles.css
back/static/assets/css/styles.min.css
back/static/assets/js/app.min.js
back/static/assets/js/aut.js
back/static/assets/js/auth.js
back/static/assets/js/chart.js
back/static/assets/js/dashboard.js
back/static/assets/js/registration-success.html
back/static/assets/js/sidebarmenu.js
back/static/assets/libs/apexcharts/LICENSE
back/static/assets/libs/apexcharts/package.json
back/static/assets/libs/apexcharts/README.md
back/static/assets/libs/apexcharts/src/apexcharts.js
back/static/assets/libs/apexcharts/src/assets/apexcharts.css
back/static/assets/libs/apexcharts/src/charts/Bar.js
back/static/assets/libs/apexcharts/src/charts/BarStacked.js
back/static/assets/libs/apexcharts/src/charts/BoxCandleStick.js
back/static/assets/libs/apexcharts/src/charts/common/bar/DataLabels.js
back/static/assets/libs/apexcharts/src/charts/common/bar/Helpers.js
back/static/assets/libs/apexcharts/src/charts/common/circle/Helpers.js
back/static/assets/libs/apexcharts/src/charts/common/line/Helpers.js
back/static/assets/libs/apexcharts/src/charts/common/treemap/Helpers.js
back/static/assets/libs/apexcharts/src/charts/HeatMap.js
back/static/assets/libs/apexcharts/src/charts/Line.js
back/static/assets/libs/apexcharts/src/charts/Pie.js
back/static/assets/libs/apexcharts/src/charts/Radar.js
back/static/assets/libs/apexcharts/src/charts/Radial.js
back/static/assets/libs/apexcharts/src/charts/RangeBar.js
back/static/assets/libs/apexcharts/src/charts/Scatter.js
back/static/assets/libs/apexcharts/src/charts/Treemap.js
back/static/assets/libs/apexcharts/src/libs/Treemap-squared.js
back/static/assets/libs/apexcharts/src/locales/ar.json
back/static/assets/libs/apexcharts/src/locales/ca.json
back/static/assets/libs/apexcharts/src/locales/cs.json
back/static/assets/libs/apexcharts/src/locales/de.json
back/static/assets/libs/apexcharts/src/locales/el.json
back/static/assets/libs/apexcharts/src/locales/en.json
back/static/assets/libs/apexcharts/src/locales/es.json
back/static/assets/libs/apexcharts/src/locales/et.json
back/static/assets/libs/apexcharts/src/locales/fa.json
back/static/assets/libs/apexcharts/src/locales/fi.json
back/static/assets/libs/apexcharts/src/locales/fr.json
back/static/assets/libs/apexcharts/src/locales/he.json
back/static/assets/libs/apexcharts/src/locales/hi.json
back/static/assets/libs/apexcharts/src/locales/hr.json
back/static/assets/libs/apexcharts/src/locales/hu.json
back/static/assets/libs/apexcharts/src/locales/hy.json
back/static/assets/libs/apexcharts/src/locales/id.json
back/static/assets/libs/apexcharts/src/locales/it.json
back/static/assets/libs/apexcharts/src/locales/ja.json
back/static/assets/libs/apexcharts/src/locales/ka.json
back/static/assets/libs/apexcharts/src/locales/ko.json
back/static/assets/libs/apexcharts/src/locales/lt.json
back/static/assets/libs/apexcharts/src/locales/lv.json
back/static/assets/libs/apexcharts/src/locales/nb.json
back/static/assets/libs/apexcharts/src/locales/nl.json
back/static/assets/libs/apexcharts/src/locales/pl.json
back/static/assets/libs/apexcharts/src/locales/pt-br.json
back/static/assets/libs/apexcharts/src/locales/pt.json
back/static/assets/libs/apexcharts/src/locales/rs.json
back/static/assets/libs/apexcharts/src/locales/ru.json
back/static/assets/libs/apexcharts/src/locales/se.json
back/static/assets/libs/apexcharts/src/locales/sk.json
back/static/assets/libs/apexcharts/src/locales/sl.json
back/static/assets/libs/apexcharts/src/locales/sq.json
back/static/assets/libs/apexcharts/src/locales/th.json
back/static/assets/libs/apexcharts/src/locales/tr.json
back/static/assets/libs/apexcharts/src/locales/ua.json
back/static/assets/libs/apexcharts/src/locales/zh-cn.json
back/static/assets/libs/apexcharts/src/locales/zh-tw.json
back/static/assets/libs/apexcharts/src/modules/Animations.js
back/static/assets/libs/apexcharts/src/modules/annotations/Annotations.js
back/static/assets/libs/apexcharts/src/modules/annotations/Helpers.js
back/static/assets/libs/apexcharts/src/modules/annotations/PointsAnnotations.js
back/static/assets/libs/apexcharts/src/modules/annotations/XAxisAnnotations.js
back/static/assets/libs/apexcharts/src/modules/annotations/YAxisAnnotations.js
back/static/assets/libs/apexcharts/src/modules/axes/Axes.js
back/static/assets/libs/apexcharts/src/modules/axes/AxesUtils.js
back/static/assets/libs/apexcharts/src/modules/axes/Grid.js
back/static/assets/libs/apexcharts/src/modules/axes/XAxis.js
back/static/assets/libs/apexcharts/src/modules/axes/YAxis.js
back/static/assets/libs/apexcharts/src/modules/Base.js
back/static/assets/libs/apexcharts/src/modules/Core.js
back/static/assets/libs/apexcharts/src/modules/CoreUtils.js
back/static/assets/libs/apexcharts/src/modules/Crosshairs.js
back/static/assets/libs/apexcharts/src/modules/Data.js
back/static/assets/libs/apexcharts/src/modules/DataLabels.js
back/static/assets/libs/apexcharts/src/modules/dimensions/Dimensions.js
back/static/assets/libs/apexcharts/src/modules/dimensions/Grid.js
back/static/assets/libs/apexcharts/src/modules/dimensions/Helpers.js
back/static/assets/libs/apexcharts/src/modules/dimensions/XAxis.js
back/static/assets/libs/apexcharts/src/modules/dimensions/YAxis.js
back/static/assets/libs/apexcharts/src/modules/Events.js
back/static/assets/libs/apexcharts/src/modules/Exports.js
back/static/assets/libs/apexcharts/src/modules/Fill.js
back/static/assets/libs/apexcharts/src/modules/Filters.js
back/static/assets/libs/apexcharts/src/modules/Formatters.js
back/static/assets/libs/apexcharts/src/modules/Graphics.js
[1953 more files omitted for size]
```

### Dependencies

- back/package.json: apexcharts@^3.37.0, bootstrap@^5.2.3, jquery@^3.6.3, sass@^1.54.8
- back/requirements.txt: flask, Flask-Migrate, Flask-SQLAlchemy, googletrans@==4.0.0-rc1, langchain, moviepy, numpy, openai@==0.28.0, pinecone-client, pydub, pymupdf, PyPDF2, sklearn, spacy, SpeechRecognition, translate
- back/static/assets/libs/apexcharts/package.json: @babel/core@^7.8.7, @babel/plugin-proposal-class-properties@^7.8.3, @babel/preset-env@^7.8.7, @rollup/plugin-babel@^5.2.1, @rollup/plugin-json@4.0.1, @rollup/plugin-node-resolve@6.0.0, @rollup/plugin-replace@2.3.0, @rollup/plugin-strip@1.3.1, babel-eslint@10.0.3, babel-jest@27.3.1, babel-loader@8.0.6, babel-plugin-istanbul@6.0.0, chalk@3.0.0, css-loader@3.4.1, eslint@8.2.0, eslint-config-prettier@6.9.0, eslint-loader@3.0.3, eslint-plugin-import@2.19.1, eslint-plugin-prettier@3.1.2, eslint-plugin-promise@4.2.1, fs-extra@8.1.0, jest@27.3.1, nunjucks@3.2.1, nyc@15.0.0, pixelmatch@5.1.0, pngjs@3.4.0, postcss@^8.3.11, prettier@1.19.1, puppeteer@2.0.0, puppeteer-cluster@0.18.0, rollup@2.56.0, rollup-plugin-babel@4.4.0, rollup-plugin-copy-glob@0.3.2, rollup-plugin-postcss@4.0.1, rollup-plugin-svgo@1.1.0, rollup-plugin-terser@7.0.2, style-loader@1.1.2, svg-inline-loader@0.8.0, svg.draggable.js@^2.2.2, svg.easing.js@^2.0.0, svg.filter.js@^2.0.2, svg.pathmorphing.js@^0.1.3, svg.resize.js@^1.4.3, svg.select.js@^3.0.1, terser@5.3.8, tslint@5.12.1, typescript@3.2.2, webpack@5.3.2, webpack-bundle-analyzer@3.9.0, webpack-cli@4.9.1
- back/static/assets/libs/bootstrap/package.json: @babel/cli@^7.17.10, @babel/core@^7.17.10, @babel/preset-env@^7.17.10, @popperjs/core@^2.11.5, @popperjs/core@^2.11.5, @rollup/plugin-babel@^5.3.1, @rollup/plugin-commonjs@^22.0.0, @rollup/plugin-node-resolve@^13.3.0, @rollup/plugin-replace@^4.0.0, autoprefixer@^10.4.7, bundlewatch@^0.3.3, clean-css-cli@^5.6.0, cross-env@^7.0.3, eslint@^8.15.0, eslint-config-xo@^0.40.0, eslint-plugin-import@^2.26.0, eslint-plugin-markdown@^2.2.1, eslint-plugin-unicorn@^42.0.0, find-unused-sass-variables@^4.0.4, globby@^11.1.0, hammer-simulator@0.0.1, hugo-bin@^0.86.0, ip@^2.0.0, jquery@^3.6.0, karma@^6.3.20, karma-browserstack-launcher@1.4.0, karma-chrome-launcher@^3.1.1, karma-coverage-istanbul-reporter@^3.0.3, karma-detect-browsers@^2.3.3, karma-firefox-launcher@^2.1.2, karma-jasmine@^5.0.1, karma-jasmine-html-reporter@^1.7.0, karma-rollup-preprocessor@7.0.7, lockfile-lint@^4.7.4, nodemon@^2.0.16, npm-run-all@^4.1.5, postcss@^8.4.13, postcss-cli@^9.1.0, rollup@^2.72.1, rollup-plugin-istanbul@^3.0.0, rtlcss@^3.5.0, sass@^1.51.0, shelljs@^0.8.5, stylelint@^14.8.2, stylelint-config-twbs-bootstrap@^3.0.1, terser@^5.13.1, vnu-jar@21.10.12
- back/static/assets/libs/jquery/package.json: @babel/core@7.3.3, @babel/plugin-transform-for-of@7.2.0, commitplease@3.2.0, core-js@2.6.5, eslint-config-jquery@1.0.1, grunt@1.0.3, grunt-babel@8.0.0, grunt-cli@1.3.2, grunt-compare-size@0.4.2, grunt-contrib-uglify@3.4.0, grunt-contrib-watch@1.1.0, grunt-eslint@21.0.0, grunt-git-authors@3.2.0, grunt-jsonlint@1.1.0, grunt-karma@3.0.1, grunt-newer@1.3.0, grunt-npmcopy@0.1.0, gzip-js@0.3.2, husky@1.3.1, insight@0.10.1, jsdom@13.2.0, karma@4.0.1, karma-browserstack-launcher@1.4.0, karma-chrome-launcher@2.2.0, karma-firefox-launcher@1.1.0, karma-ie-launcher@1.0.0, karma-jsdom-launcher@7.1.0, karma-qunit@3.0.0, load-grunt-tasks@4.0.0, native-promise-only@0.8.1, promises-aplus-tests@2.1.2, q@1.5.1, qunit@2.9.2, raw-body@2.3.3, requirejs@2.3.6, sinon@2.3.7, sizzle@2.3.4, strip-json-comments@2.0.1, testswarm@1.1.0, uglify-js@3.4.7
- back/static/assets/libs/simplebar/package.json: @juggle/resize-observer@^3.3.1, can-use-dom@^0.1.0, core-js@^3.0.1, css-loader@^0.28.11, intern@^4.4.2, lodash.debounce@^4.0.8, lodash.memoize@^4.1.2, lodash.throttle@^4.1.1, minify@^3.0.5, promise@^8.0.2, react-select@^2.4.3, react-window@^1.8.1, style-loader@^0.21.0
- back/templates/src/assets/libs/apexcharts/package.json: @babel/core@^7.8.7, @babel/plugin-proposal-class-properties@^7.8.3, @babel/preset-env@^7.8.7, @rollup/plugin-babel@^5.2.1, @rollup/plugin-json@4.0.1, @rollup/plugin-node-resolve@6.0.0, @rollup/plugin-replace@2.3.0, @rollup/plugin-strip@1.3.1, babel-eslint@10.0.3, babel-jest@27.3.1, babel-loader@8.0.6, babel-plugin-istanbul@6.0.0, chalk@3.0.0, css-loader@3.4.1, eslint@8.2.0, eslint-config-prettier@6.9.0, eslint-loader@3.0.3, eslint-plugin-import@2.19.1, eslint-plugin-prettier@3.1.2, eslint-plugin-promise@4.2.1, fs-extra@8.1.0, jest@27.3.1, nunjucks@3.2.1, nyc@15.0.0, pixelmatch@5.1.0, pngjs@3.4.0, postcss@^8.3.11, prettier@1.19.1, puppeteer@2.0.0, puppeteer-cluster@0.18.0, rollup@2.56.0, rollup-plugin-babel@4.4.0, rollup-plugin-copy-glob@0.3.2, rollup-plugin-postcss@4.0.1, rollup-plugin-svgo@1.1.0, rollup-plugin-terser@7.0.2, style-loader@1.1.2, svg-inline-loader@0.8.0, svg.draggable.js@^2.2.2, svg.easing.js@^2.0.0, svg.filter.js@^2.0.2, svg.pathmorphing.js@^0.1.3, svg.resize.js@^1.4.3, svg.select.js@^3.0.1, terser@5.3.8, tslint@5.12.1, typescript@3.2.2, webpack@5.3.2, webpack-bundle-analyzer@3.9.0, webpack-cli@4.9.1
- back/templates/src/assets/libs/bootstrap/package.json: @babel/cli@^7.17.10, @babel/core@^7.17.10, @babel/preset-env@^7.17.10, @popperjs/core@^2.11.5, @popperjs/core@^2.11.5, @rollup/plugin-babel@^5.3.1, @rollup/plugin-commonjs@^22.0.0, @rollup/plugin-node-resolve@^13.3.0, @rollup/plugin-replace@^4.0.0, autoprefixer@^10.4.7, bundlewatch@^0.3.3, clean-css-cli@^5.6.0, cross-env@^7.0.3, eslint@^8.15.0, eslint-config-xo@^0.40.0, eslint-plugin-import@^2.26.0, eslint-plugin-markdown@^2.2.1, eslint-plugin-unicorn@^42.0.0, find-unused-sass-variables@^4.0.4, globby@^11.1.0, hammer-simulator@0.0.1, hugo-bin@^0.86.0, ip@^2.0.0, jquery@^3.6.0, karma@^6.3.20, karma-browserstack-launcher@1.4.0, karma-chrome-launcher@^3.1.1, karma-coverage-istanbul-reporter@^3.0.3, karma-detect-browsers@^2.3.3, karma-firefox-launcher@^2.1.2, karma-jasmine@^5.0.1, karma-jasmine-html-reporter@^1.7.0, karma-rollup-preprocessor@7.0.7, lockfile-lint@^4.7.4, nodemon@^2.0.16, npm-run-all@^4.1.5, postcss@^8.4.13, postcss-cli@^9.1.0, rollup@^2.72.1, rollup-plugin-istanbul@^3.0.0, rtlcss@^3.5.0, sass@^1.51.0, shelljs@^0.8.5, stylelint@^14.8.2, stylelint-config-twbs-bootstrap@^3.0.1, terser@^5.13.1, vnu-jar@21.10.12
- back/templates/src/assets/libs/jquery/package.json: @babel/core@7.3.3, @babel/plugin-transform-for-of@7.2.0, commitplease@3.2.0, core-js@2.6.5, eslint-config-jquery@1.0.1, grunt@1.0.3, grunt-babel@8.0.0, grunt-cli@1.3.2, grunt-compare-size@0.4.2, grunt-contrib-uglify@3.4.0, grunt-contrib-watch@1.1.0, grunt-eslint@21.0.0, grunt-git-authors@3.2.0, grunt-jsonlint@1.1.0, grunt-karma@3.0.1, grunt-newer@1.3.0, grunt-npmcopy@0.1.0, gzip-js@0.3.2, husky@1.3.1, insight@0.10.1, jsdom@13.2.0, karma@4.0.1, karma-browserstack-launcher@1.4.0, karma-chrome-launcher@2.2.0, karma-firefox-launcher@1.1.0, karma-ie-launcher@1.0.0, karma-jsdom-launcher@7.1.0, karma-qunit@3.0.0, load-grunt-tasks@4.0.0, native-promise-only@0.8.1, promises-aplus-tests@2.1.2, q@1.5.1, qunit@2.9.2, raw-body@2.3.3, requirejs@2.3.6, sinon@2.3.7, sizzle@2.3.4, strip-json-comments@2.0.1, testswarm@1.1.0, uglify-js@3.4.7
- back/templates/src/assets/libs/simplebar/package.json: @juggle/resize-observer@^3.3.1, can-use-dom@^0.1.0, core-js@^3.0.1, css-loader@^0.28.11, intern@^4.4.2, lodash.debounce@^4.0.8, lodash.memoize@^4.1.2, lodash.throttle@^4.1.1, minify@^3.0.5, promise@^8.0.2, react-select@^2.4.3, react-window@^1.8.1, style-loader@^0.21.0
- front/assets/test/owl.carousel/package.json: assemble@~0.4.37, blanket@^1.1.7, foundation-sites@~5.5.2, grunt@^0.4.5, grunt-autoprefixer@^3.0.3, grunt-banner@^0.4.0, grunt-blanket-qunit@^0.2.0, grunt-contrib-clean@~0.6.0, grunt-contrib-compress@~0.13.0, grunt-contrib-concat@~0.5.1, grunt-contrib-connect@~0.10.1, grunt-contrib-copy@~0.8.0, grunt-contrib-cssmin@^0.12.3, grunt-contrib-jshint@^0.11.2, grunt-contrib-qunit@>=0.2.1, grunt-contrib-uglify@^0.9.1, grunt-contrib-watch@^0.6.1, grunt-gh-pages@^0.10.0, grunt-jscs@~1.8.0, grunt-sass@^1.0.0, jquery@>=1.8.3, load-grunt-tasks@^3.2.0, pretty@^1.0.0, qunitjs@^1.18.0
- front/package.json: @mdi/font@^3.6.95, ace-builds@^1.2.9, bootstrap@^5.0.0, bootstrap-datepicker@^1.9.0, bootstrap-maxlength@1.6.0, browser-sync@^2.16.0, c3@^0.7.1, chart.js@^2.8.0, clipboard@^2.0.4, codemirror@^5.47.0, colcade@^0.2.0, compass-mixins@^0.12.10, d3@^5.9.2, del@^4.1.1, dropify@0.2.2, dropzone@^5.5.1, flag-icon-css@^3.3.0, font-awesome@4.7.0, gulp@^4.0.2, gulp-concat@^2.6.1, gulp-inject@^5.0.2, gulp-inject-partials@^1.0.3, gulp-rename@^1.2.2, gulp-replace@^1.0.0, gulp-sass@^4.0.2, gulp-sourcemaps@^2.6.3, inputmask@^4.0.8, ion-rangeslider@^2.3.0, jquery@^3.4.1, jquery-asColorPicker@0.4.4, jquery-bar-rating@1.2.2, jquery-contextmenu@^2.8.0, jquery-file-upload@^4.0.11, jquery-mapael@^2.2.0, jquery-sparkline@2.4.0, jquery-steps@1.1.0, jquery-tags-input@1.3.5, jquery-toast-plugin@^1.3.2, jquery-validation@^1.19.1, jquery.avgrund@1.3.3, jquery.repeater@1.2.1, jsgrid@1.5.3, justgage@1.2.2, jvectormap@2.0.4, lightgallery@^1.6.12, merge-stream@^2.0.0, minimatch@^3.0.4, moment@^2.24.0, morris.js@0.5.0, node-sass@^4.12.0, nouislider@^13.1.5, owl-carousel-2@0.0.3, perfect-scrollbar@^1.4.0, popper.js@^1.15.0, progressbar.js@1.0.1, puse-icons-feather@^1.1.0, pwstabs@1.4.0, quill@^1.3.6, raphael@^2.2.8, rickshaw@^1.6.6, select2@^4.0.7, select2-bootstrap-theme@0.1.0-beta.10, simple-line-icons@2.4.1, simplemde@1.11.2, summernote@^0.8.12, sweetalert@^2.1.2, tempusdominus-bootstrap-4@^5.1.2, ti-icons@^0.1.2, tinymce@^5.0.8, twbs-pagination@1.4.1, typeahead.js@^0.11.1, typicons.font@^2.0.9, x-editable@^1.5.1
- static/assets/test/owl.carousel/package.json: assemble@~0.4.37, blanket@^1.1.7, foundation-sites@~5.5.2, grunt@^0.4.5, grunt-autoprefixer@^3.0.3, grunt-banner@^0.4.0, grunt-blanket-qunit@^0.2.0, grunt-contrib-clean@~0.6.0, grunt-contrib-compress@~0.13.0, grunt-contrib-concat@~0.5.1, grunt-contrib-connect@~0.10.1, grunt-contrib-copy@~0.8.0, grunt-contrib-cssmin@^0.12.3, grunt-contrib-jshint@^0.11.2, grunt-contrib-qunit@>=0.2.1, grunt-contrib-uglify@^0.9.1, grunt-contrib-watch@^0.6.1, grunt-gh-pages@^0.10.0, grunt-jscs@~1.8.0, grunt-sass@^1.0.0, jquery@>=1.8.3, load-grunt-tasks@^3.2.0, pretty@^1.0.0, qunitjs@^1.18.0
- static/package.json: @mdi/font@^3.6.95, ace-builds@^1.2.9, bootstrap@^5.0.0, bootstrap-datepicker@^1.9.0, bootstrap-maxlength@1.6.0, browser-sync@^2.16.0, c3@^0.7.1, chart.js@^2.8.0, clipboard@^2.0.4, codemirror@^5.47.0, colcade@^0.2.0, compass-mixins@^0.12.10, d3@^5.9.2, del@^4.1.1, dropify@0.2.2, dropzone@^5.5.1, flag-icon-css@^3.3.0, font-awesome@4.7.0, gulp@^4.0.2, gulp-concat@^2.6.1, gulp-inject@^5.0.2, gulp-inject-partials@^1.0.3, gulp-rename@^1.2.2, gulp-replace@^1.0.0, gulp-sass@^4.0.2, gulp-sourcemaps@^2.6.3, inputmask@^4.0.8, ion-rangeslider@^2.3.0, jquery@^3.4.1, jquery-asColorPicker@0.4.4, jquery-bar-rating@1.2.2, jquery-contextmenu@^2.8.0, jquery-file-upload@^4.0.11, jquery-mapael@^2.2.0, jquery-sparkline@2.4.0, jquery-steps@1.1.0, jquery-tags-input@1.3.5, jquery-toast-plugin@^1.3.2, jquery-validation@^1.19.1, jquery.avgrund@1.3.3, jquery.repeater@1.2.1, jsgrid@1.5.3, justgage@1.2.2, jvectormap@2.0.4, lightgallery@^1.6.12, merge-stream@^2.0.0, minimatch@^3.0.4, moment@^2.24.0, morris.js@0.5.0, node-sass@^4.12.0, nouislider@^13.1.5, owl-carousel-2@0.0.3, perfect-scrollbar@^1.4.0, popper.js@^1.15.0, progressbar.js@1.0.1, puse-icons-feather@^1.1.0, pwstabs@1.4.0, quill@^1.3.6, raphael@^2.2.8, rickshaw@^1.6.6, select2@^4.0.7, select2-bootstrap-theme@0.1.0-beta.10, simple-line-icons@2.4.1, simplemde@1.11.2, summernote@^0.8.12, sweetalert@^2.1.2, tempusdominus-bootstrap-4@^5.1.2, ti-icons@^0.1.2, tinymce@^5.0.8, twbs-pagination@1.4.1, typeahead.js@^0.11.1, typicons.font@^2.0.9, x-editable@^1.5.1

### Recent commits (newest first)

- push wifi died
- gitinital commit
- Initial commit

## Key source files (fetched from GitHub, selected and truncated for size)

### front/assets/test/owl.carousel/ROADMAP.md

```markdown
# OwlCarousel 2 Roadmap

You can discuss the roadmap here: #1756

## 2.2 - current version

## 2.3 - bugfixes, repo migration, minor features

 - [ ] clean up contributor guides
 - [ ] work through, accept or schedule PRs from current stack
 - [ ] [#1602](https://github.com/OwlCarousel2/OwlCarousel2/issues/1602) - CSS transitions fail except for default
 - [ ] update progress in [#1538](https://github.com/OwlCarousel2/OwlCarousel2/issues/1538)
 - [ ] [#1704](https://github.com/OwlCarousel2/OwlCarousel2/issues/1704) - viewport width detection
 - [ ] [#1717](https://github.com/OwlCarousel2/OwlCarousel2/issues/1717) - keyboard control
 - [ ] move repo to company account (https://github.com/medienpark)

## 2.4 - finish up build pipeline, docs

 - [ ] [#1330](https://github.com/OwlCarousel2/OwlCarousel2/issues/1330) - finish moving to gulp
 - [ ] ditto for moving to assemble for docs
 - [ ] [#1666](https://github.com/OwlCarousel2/OwlCarousel2/issues/1666) - RTL center mode
 - [ ] [#1613](https://github.com/OwlCarousel2/OwlCarousel2/issues/1613) - generic plugin integration

## 2.5 - cloning & worker cleanup

 - [ ] worker cleanup
 - [ ] clone computation fix (and provide consistent access to slides)
 - [ ] [#1575](https://github.com/OwlCarousel2/OwlCarousel2/issues/1575) & [#1621](https://github.com/OwlCarousel2/OwlCarousel2/issues/1621) - AutoHeight fixes
 - [ ] [#1511](https://github.com/OwlCarousel2/OwlCarousel2/issues/1511) - do not disable nav when center = true & length == items

## 2.6 - cleanup, code style, repo cleanup

 - [ ] clean up code ToDos
 - [ ] fix code style
 - [ ] check whether we want to support velocity.js (at least optionally)
 - [ ] close not-yet-tagged issues older than 8 month
 - [ ] [#1518](https://github.com/OwlCarousel2/OwlCarousel2/issues/1518) - slide change event issues (not cancelling events etc.)
 - [ ] [#1563](https://github.com/OwlCarousel2/OwlCarousel2/issues/1563) - slide offset on last if loop = false
 - [ ] [#1633](https://github.com/OwlCarousel2/OwlCarousel2/issues/1633) & [#1627](https://github.com/OwlCarousel2/OwlCarousel2/issues/1627) - (merged items) swipe/autoplay (mostly testing whether the worker/clone fixes in 2.5 solved this)
 - [ ] [#1723](https://github.com/OwlCarousel2/OwlCarousel2/issues/1723) & [#1655](https://github.com/OwlCarousel2/OwlCarousel2/issues/1655) - Autoplay bugs

## 2.7 - bugfixes & final, "LTS" 2.x release

 - [ ] [#1647](https://github.com/OwlCarousel2/OwlCarousel2/issues/1647) - 1px from prev. slide on current
 - [ ] [#1523](https://github.com/OwlCarousel2/OwlCarousel2/issues/1523) - autoplay vs. video autoplay issue
 - [ ] [#1471](https://github.com/OwlCarousel2/OwlCarousel2/issues/1471) - pause autoplay on hover
 - [ ] [#1343](https://github.com/OwlCarousel2/OwlCarousel2/issues/1343) - timeout per slide

## 3.0 - Typescript, additional plugins, breaking changes

 - [ ] TypeScript refactoring
 - [ ] remove css-mimicking settings (such as margins) and use CSS instead
 - [ ] overlay
[truncated — 46 more characters]
```

### static/assets/test/owl.carousel/ROADMAP.md

```markdown
# OwlCarousel 2 Roadmap

You can discuss the roadmap here: #1756

## 2.2 - current version

## 2.3 - bugfixes, repo migration, minor features

 - [ ] clean up contributor guides
 - [ ] work through, accept or schedule PRs from current stack
 - [ ] [#1602](https://github.com/OwlCarousel2/OwlCarousel2/issues/1602) - CSS transitions fail except for default
 - [ ] update progress in [#1538](https://github.com/OwlCarousel2/OwlCarousel2/issues/1538)
 - [ ] [#1704](https://github.com/OwlCarousel2/OwlCarousel2/issues/1704) - viewport width detection
 - [ ] [#1717](https://github.com/OwlCarousel2/OwlCarousel2/issues/1717) - keyboard control
 - [ ] move repo to company account (https://github.com/medienpark)

## 2.4 - finish up build pipeline, docs

 - [ ] [#1330](https://github.com/OwlCarousel2/OwlCarousel2/issues/1330) - finish moving to gulp
 - [ ] ditto for moving to assemble for docs
 - [ ] [#1666](https://github.com/OwlCarousel2/OwlCarousel2/issues/1666) - RTL center mode
 - [ ] [#1613](https://github.com/OwlCarousel2/OwlCarousel2/issues/1613) - generic plugin integration

## 2.5 - cloning & worker cleanup

 - [ ] worker cleanup
 - [ ] clone computation fix (and provide consistent access to slides)
 - [ ] [#1575](https://github.com/OwlCarousel2/OwlCarousel2/issues/1575) & [#1621](https://github.com/OwlCarousel2/OwlCarousel2/issues/1621) - AutoHeight fixes
 - [ ] [#1511](https://github.com/OwlCarousel2/OwlCarousel2/issues/1511) - do not disable nav when center = true & length == items

## 2.6 - cleanup, code style, repo cleanup

 - [ ] clean up code ToDos
 - [ ] fix code style
 - [ ] check whether we want to support velocity.js (at least optionally)
 - [ ] close not-yet-tagged issues older than 8 month
 - [ ] [#1518](https://github.com/OwlCarousel2/OwlCarousel2/issues/1518) - slide change event issues (not cancelling events etc.)
 - [ ] [#1563](https://github.com/OwlCarousel2/OwlCarousel2/issues/1563) - slide offset on last if loop = false
 - [ ] [#1633](https://github.com/OwlCarousel2/OwlCarousel2/issues/1633) & [#1627](https://github.com/OwlCarousel2/OwlCarousel2/issues/1627) - (merged items) swipe/autoplay (mostly testing whether the worker/clone fixes in 2.5 solved this)
 - [ ] [#1723](https://github.com/OwlCarousel2/OwlCarousel2/issues/1723) & [#1655](https://github.com/OwlCarousel2/OwlCarousel2/issues/1655) - Autoplay bugs

## 2.7 - bugfixes & final, "LTS" 2.x release

 - [ ] [#1647](https://github.com/OwlCarousel2/OwlCarousel2/issues/1647) - 1px from prev. slide on current
 - [ ] [#1523](https://github.com/OwlCarousel2/OwlCarousel2/issues/1523) - autoplay vs. video autoplay issue
 - [ ] [#1471](https://github.com/OwlCarousel2/OwlCarousel2/issues/1471) - pause autoplay on hover
 - [ ] [#1343](https://github.com/OwlCarousel2/OwlCarousel2/issues/1343) - timeout per slide

## 3.0 - Typescript, additional plugins, breaking changes

 - [ ] TypeScript refactoring
 - [ ] remove css-mimicking settings (such as margins) and use CSS instead
 - [ ] overlay
[truncated — 46 more characters]
```

### back/requirements.txt

```
Flask-SQLAlchemy
flask
openai==0.28.0
pydub
SpeechRecognition
pymupdf
pinecone-client
spacy
sklearn
langchain==0.0.316
langchain
PyPDF2
googletrans==4.0.0-rc1
moviepy
translate
Flask-Migrate
numpy
```

### back/package.json

```
{
  "name": "vite",
  "description": "Include Bootstrap's source Sass and individual JavaScript plugins with Vite.",
  "version": "0.0.0",
  "private": true,
  "stackblitz": {
    "startCommand": "npm start"
  },
  "devDependencies": {
    "sass": "^1.54.8"
  },
  "dependencies": {
    "apexcharts": "^3.37.0",
    "bootstrap": "^5.2.3",
    "jquery": "^3.6.3"
  }
}

```

### front/package.json

```
{
  "name": "Star_admin",
  "version": "1.2.1",
  "description": "",
  "main": "index.html",
  "dependencies": {
    "@mdi/font": "^3.6.95",
    "ace-builds": "^1.2.9",
    "bootstrap": "^5.0.0",
    "bootstrap-datepicker": "^1.9.0",
    "bootstrap-maxlength": "1.6.0",
    "c3": "^0.7.1",
    "chart.js": "^2.8.0",
    "clipboard": "^2.0.4",
    "codemirror": "^5.47.0",
    "colcade": "^0.2.0",
    "d3": "^5.9.2",
    "dropify": "0.2.2",
    "dropzone": "^5.5.1",
    "flag-icon-css": "^3.3.0",
    "font-awesome": "4.7.0",
    "gulp-sourcemaps": "^2.6.3",
    "inputmask": "^4.0.8",
    "ion-rangeslider": "^2.3.0",
    "jquery": "^3.4.1",
    "jquery-asColorPicker": "0.4.4",
    "jquery-bar-rating": "1.2.2",
    "jquery-contextmenu": "^2.8.0",
    "jquery-file-upload": "^4.0.11",
    "jquery-mapael": "^2.2.0",
    "jquery-sparkline": "2.4.0",
    "jquery-steps": "1.1.0",
    "jquery-tags-input": "1.3.5",
    "jquery-toast-plugin": "^1.3.2",
    "jquery-validation": "^1.19.1",
    "jquery.avgrund": "1.3.3",
    "jquery.repeater": "1.2.1",
    "jsgrid": "1.5.3",
    "justgage": "1.2.2",
    "jvectormap": "2.0.4",
    "lightgallery": "^1.6.12",
    "merge-stream": "^2.0.0",
    "moment": "^2.24.0",
    "morris.js": "0.5.0",
    "nouislider": "^13.1.5",
    "owl-carousel-2": "0.0.3",
    "perfect-scrollbar": "^1.4.0",
    "popper.js": "^1.15.0",
    "progressbar.js": "1.0.1",
    "puse-icons-feather": "^1.1.0",
    "pwstabs": "1.4.0",
    "quill": "^1.3.6",
    "raphael": "^2.2.8",
    "rickshaw": "^1.6.6",
    "select2": "^4.0.7",
    "select2-bootstrap-theme": "0.1.0-beta.10",
    "simple-line-icons": "2.4.1",
    "simplemde": "1.11.2",
    "summernote": "^0.8.12",
    "sweetalert": "^2.1.2",
    "tempusdominus-bootstrap-4": "^5.1.2",
    "ti-icons": "^0.1.2",
    "tinymce": "^5.0.8",
    "twbs-pagination": "1.4.1",
    "typeahead.js": "^0.11.1",
    "typicons.font": "^2.0.9",
    "x-editable": "^1.5.1"
  },
  "devDependencies": {
    "browser-sync": "^2.16.0",
    "compass-mixins": "^0.12.10",
    "del": "^4.1.1",
    "gulp": "^4.0.2",
    "gulp-concat": "^2.6.1",
    "gulp-inject": "^5.0.2",
    "gulp-inject-partials": "^1.0.3",
    "gulp-rename": "^1.2.2",
    "gulp-replace": "^1.0.0",
    "gulp-sass": "^4.0.2",
    "minimatch": "^3.0.4",
    "node-sass": "^4.12.0"
  },
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "bootstrapdash",
  "url": "http://www.bootstrapdash.com/",
  "copyright": "",
  "license": ""
}

```

### static/package.json

```
{
  "name": "Star_admin",
  "version": "1.2.1",
  "description": "",
  "main": "index.html",
  "dependencies": {
    "@mdi/font": "^3.6.95",
    "ace-builds": "^1.2.9",
    "bootstrap": "^5.0.0",
    "bootstrap-datepicker": "^1.9.0",
    "bootstrap-maxlength": "1.6.0",
    "c3": "^0.7.1",
    "chart.js": "^2.8.0",
    "clipboard": "^2.0.4",
    "codemirror": "^5.47.0",
    "colcade": "^0.2.0",
    "d3": "^5.9.2",
    "dropify": "0.2.2",
    "dropzone": "^5.5.1",
    "flag-icon-css": "^3.3.0",
    "font-awesome": "4.7.0",
    "gulp-sourcemaps": "^2.6.3",
    "inputmask": "^4.0.8",
    "ion-rangeslider": "^2.3.0",
    "jquery": "^3.4.1",
    "jquery-asColorPicker": "0.4.4",
    "jquery-bar-rating": "1.2.2",
    "jquery-contextmenu": "^2.8.0",
    "jquery-file-upload": "^4.0.11",
    "jquery-mapael": "^2.2.0",
    "jquery-sparkline": "2.4.0",
    "jquery-steps": "1.1.0",
    "jquery-tags-input": "1.3.5",
    "jquery-toast-plugin": "^1.3.2",
    "jquery-validation": "^1.19.1",
    "jquery.avgrund": "1.3.3",
    "jquery.repeater": "1.2.1",
    "jsgrid": "1.5.3",
    "justgage": "1.2.2",
    "jvectormap": "2.0.4",
    "lightgallery": "^1.6.12",
    "merge-stream": "^2.0.0",
    "moment": "^2.24.0",
    "morris.js": "0.5.0",
    "nouislider": "^13.1.5",
    "owl-carousel-2": "0.0.3",
    "perfect-scrollbar": "^1.4.0",
    "popper.js": "^1.15.0",
    "progressbar.js": "1.0.1",
    "puse-icons-feather": "^1.1.0",
    "pwstabs": "1.4.0",
    "quill": "^1.3.6",
    "raphael": "^2.2.8",
    "rickshaw": "^1.6.6",
    "select2": "^4.0.7",
    "select2-bootstrap-theme": "0.1.0-beta.10",
    "simple-line-icons": "2.4.1",
    "simplemde": "1.11.2",
    "summernote": "^0.8.12",
    "sweetalert": "^2.1.2",
    "tempusdominus-bootstrap-4": "^5.1.2",
    "ti-icons": "^0.1.2",
    "tinymce": "^5.0.8",
    "twbs-pagination": "1.4.1",
    "typeahead.js": "^0.11.1",
    "typicons.font": "^2.0.9",
    "x-editable": "^1.5.1"
  },
  "devDependencies": {
    "browser-sync": "^2.16.0",
    "compass-mixins": "^0.12.10",
    "del": "^4.1.1",
    "gulp": "^4.0.2",
    "gulp-concat": "^2.6.1",
    "gulp-inject": "^5.0.2",
    "gulp-inject-partials": "^1.0.3",
    "gulp-rename": "^1.2.2",
    "gulp-replace": "^1.0.0",
    "gulp-sass": "^4.0.2",
    "minimatch": "^3.0.4",
    "node-sass": "^4.12.0"
  },
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "bootstrapdash",
  "url": "http://www.bootstrapdash.com/",
  "copyright": "",
  "license": ""
}

```

### front/assets/test/owl.carousel/package.json

```
{
  "name": "owl.carousel",
  "description": "Touch enabled jQuery plugin that lets you create beautiful responsive carousel slider.",
  "version": "2.2.1",
  "homepage": "https://github.com/OwlCarousel2/OwlCarousel2",
  "main": "./dist/owl.carousel.js",
  "author": {
    "name": "David Deutsch",
    "email": "deutsch@medienpark.net",
    "url": "https://owlcarousel2.github.io/OwlCarousel2"
  },
  "license": "SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE",
  "bugs": {
    "url": "https://github.com/OwlCarousel2/OwlCarousel2/issues",
    "email": "deutsch@medienpark.net"
  },
  "dependencies": {
    "jquery": ">=1.8.3"
  },
  "devDependencies": {
    "assemble": "~0.4.37",
    "blanket": "^1.1.7",
    "foundation-sites": "~5.5.2",
    "grunt": "^0.4.5",
    "grunt-autoprefixer": "^3.0.3",
    "grunt-banner": "^0.4.0",
    "grunt-blanket-qunit": "^0.2.0",
    "grunt-contrib-clean": "~0.6.0",
    "grunt-contrib-compress": "~0.13.0",
    "grunt-contrib-concat": "~0.5.1",
    "grunt-contrib-connect": "~0.10.1",
    "grunt-contrib-copy": "~0.8.0",
    "grunt-contrib-cssmin": "^0.12.3",
    "grunt-contrib-jshint": "^0.11.2",
    "grunt-contrib-qunit": ">=0.2.1",
    "grunt-contrib-uglify": "^0.9.1",
    "grunt-contrib-watch": "^0.6.1",
    "grunt-gh-pages": "^0.10.0",
    "grunt-jscs": "~1.8.0",
    "grunt-sass": "^1.0.0",
    "load-grunt-tasks": "^3.2.0",
    "pretty": "^1.0.0",
    "qunitjs": "^1.18.0"
  },
  "keywords": [
    "responsive",
    "carousel",
    "owlcarousel",
    "jQuery",
    "plugin"
  ]
}

```

### static/assets/test/owl.carousel/package.json

```
{
  "name": "owl.carousel",
  "description": "Touch enabled jQuery plugin that lets you create beautiful responsive carousel slider.",
  "version": "2.2.1",
  "homepage": "https://github.com/OwlCarousel2/OwlCarousel2",
  "main": "./dist/owl.carousel.js",
  "author": {
    "name": "David Deutsch",
    "email": "deutsch@medienpark.net",
    "url": "https://owlcarousel2.github.io/OwlCarousel2"
  },
  "license": "SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE",
  "bugs": {
    "url": "https://github.com/OwlCarousel2/OwlCarousel2/issues",
    "email": "deutsch@medienpark.net"
  },
  "dependencies": {
    "jquery": ">=1.8.3"
  },
  "devDependencies": {
    "assemble": "~0.4.37",
    "blanket": "^1.1.7",
    "foundation-sites": "~5.5.2",
    "grunt": "^0.4.5",
    "grunt-autoprefixer": "^3.0.3",
    "grunt-banner": "^0.4.0",
    "grunt-blanket-qunit": "^0.2.0",
    "grunt-contrib-clean": "~0.6.0",
    "grunt-contrib-compress": "~0.13.0",
    "grunt-contrib-concat": "~0.5.1",
    "grunt-contrib-connect": "~0.10.1",
    "grunt-contrib-copy": "~0.8.0",
    "grunt-contrib-cssmin": "^0.12.3",
    "grunt-contrib-jshint": "^0.11.2",
    "grunt-contrib-qunit": ">=0.2.1",
    "grunt-contrib-uglify": "^0.9.1",
    "grunt-contrib-watch": "^0.6.1",
    "grunt-gh-pages": "^0.10.0",
    "grunt-jscs": "~1.8.0",
    "grunt-sass": "^1.0.0",
    "load-grunt-tasks": "^3.2.0",
    "pretty": "^1.0.0",
    "qunitjs": "^1.18.0"
  },
  "keywords": [
    "responsive",
    "carousel",
    "owlcarousel",
    "jQuery",
    "plugin"
  ]
}

```

### back/static/assets/libs/simplebar/package.json

```
{
  "version": "5.3.6",
  "name": "simplebar",
  "title": "SimpleBar.js",
  "description": "Scrollbars, simpler.",
  "files": [
    "dist",
    "src",
    "README.md"
  ],
  "author": "Adrien Denat from a fork by Jonathan Nicol",
  "repository": {
    "type": "git",
    "url": "https://github.com/grsmto/simplebar.git",
    "directory": "packages/simplebar"
  },
  "main": "dist/simplebar.min.js",
  "module": "dist/simplebar.esm.js",
  "types": "dist/simplebar.d.ts",
  "style": "dist/simplebar.min.css",
  "homepage": "https://grsmto.github.io/simplebar/",
  "bugs": "https://github.com/grsmto/simplebar/issues",
  "license": "MIT",
  "scripts": {
    "start": "webpack-dev-server --mode=development",
    "build": "rollup -c && cp src/simplebar.css dist/simplebar.css && cp simplebar.d.ts dist/simplebar.d.ts && minify dist/simplebar.css > dist/simplebar.min.css && webpack --mode=production",
    "dev": "rollup -c -w",
    "test": "yarn test:unit && yarn test:e2e",
    "test:unit": "jest -c jest-unit.config.js",
    "test:e2e": "env-cmd intern",
    "version": "yarn build",
    "precommit": "lint-staged"
  },
  "dependencies": {
    "@juggle/resize-observer": "^3.3.1",
    "can-use-dom": "^0.1.0",
    "core-js": "^3.0.1",
    "lodash.debounce": "^4.0.8",
    "lodash.memoize": "^4.1.2",
    "lodash.throttle": "^4.1.1"
  },
  "devDependencies": {
    "css-loader": "^0.28.11",
    "intern": "^4.4.2",
    "minify": "^3.0.5",
    "promise": "^8.0.2",
    "react-select": "^2.4.3",
    "react-window": "^1.8.1",
    "style-loader": "^0.21.0"
  },
  "lint-staged": {
    "*.{js,jsx,json}": [
      "prettier-eslint --write",
      "git add"
    ]
  },
  "gitHead": "40b847916bfdd96a46dce6e9af0128b239dc70d5"
}

```

### back/static/assets/libs/jquery/package.json

```
{
  "name": "jquery",
  "title": "jQuery",
  "description": "JavaScript library for DOM operations",
  "version": "3.4.0",
  "main": "dist/jquery.js",
  "homepage": "https://jquery.com",
  "author": {
    "name": "JS Foundation and other contributors",
    "url": "https://github.com/jquery/jquery/blob/3.4.0/AUTHORS.txt"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/jquery/jquery.git"
  },
  "keywords": [
    "jquery",
    "javascript",
    "browser",
    "library"
  ],
  "bugs": {
    "url": "https://github.com/jquery/jquery/issues"
  },
  "license": "MIT",
  "dependencies": {},
  "devDependencies": {
    "@babel/core": "7.3.3",
    "@babel/plugin-transform-for-of": "7.2.0",
    "commitplease": "3.2.0",
    "core-js": "2.6.5",
    "eslint-config-jquery": "1.0.1",
    "grunt": "1.0.3",
    "grunt-babel": "8.0.0",
    "grunt-cli": "1.3.2",
    "grunt-compare-size": "0.4.2",
    "grunt-contrib-uglify": "3.4.0",
    "grunt-contrib-watch": "1.1.0",
    "grunt-eslint": "21.0.0",
    "grunt-git-authors": "3.2.0",
    "grunt-jsonlint": "1.1.0",
    "grunt-karma": "3.0.1",
    "grunt-newer": "1.3.0",
    "grunt-npmcopy": "0.1.0",
    "gzip-js": "0.3.2",
    "husky": "1.3.1",
    "insight": "0.10.1",
    "jsdom": "13.2.0",
    "karma": "4.0.1",
    "karma-browserstack-launcher": "1.4.0",
    "karma-chrome-launcher": "2.2.0",
    "karma-firefox-launcher": "1.1.0",
    "karma-ie-launcher": "1.0.0",
    "karma-jsdom-launcher": "7.1.0",
    "karma-qunit": "3.0.0",
    "load-grunt-tasks": "4.0.0",
    "native-promise-only": "0.8.1",
    "promises-aplus-tests": "2.1.2",
    "q": "1.5.1",
    "qunit": "2.9.2",
    "raw-body": "2.3.3",
    "requirejs": "2.3.6",
    "sinon": "2.3.7",
    "sizzle": "2.3.4",
    "strip-json-comments": "2.0.1",
    "testswarm": "1.1.0",
    "uglify-js": "3.4.7"
  },
  "scripts": {
    "build": "npm install && grunt",
    "start": "grunt watch",
    "test:browserless": "grunt && grunt test:slow",
    "test:browser": "grunt && grunt karma:main",
    "test": "grunt && grunt test:slow && grunt karma:main",
    "jenkins": "npm run test:browserless"
  },
  "commitplease": {
    "nohook": true,
    "components": [
      "Docs",
      "Tests",
      "Build",
      "Support",
      "Release",
      "Core",
      "Ajax",
      "Attributes",
      "Callbacks",
      "CSS",
      "Data",
      "Deferred",
      "Deprecated",
      "Dimensions",
      "Effects",
      "Event",
      "Manipulation",
      "Offset",
      "Queue",
      "Selector",
      "Serialize",
      "Traversing",
      "Wrap"
    ],
    "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)",
    "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])"
  },
  "husky": {
    "hooks": {
      "commit-msg": "node node_modules/commitplease",
      "pre-commit": "grunt lint:newer qunit_fixture"
    }
  }
}

```

[953 more indexed source files omitted to keep this export small. The full file list is in the Codebase structure section above.]