diff --git a/docs/portfolio.md b/docs/portfolio.md index 7cd7d028..35c977d1 100644 --- a/docs/portfolio.md +++ b/docs/portfolio.md @@ -1,198 +1,50 @@ --- -id: portfolio -title: Portfolio +description: OSS Projects custom_edit_url: null --- # Portfolio -## Swarm of Drones +Open Source with SLU makes open source software that supports research. -![Drone](@site/static/img/drones.png) +## New Projects -The SLU AirCRAFT Lab has created a -software and hardware pipeline for -controlling a swarm of drones, including -virtual reality (VR) devices, a main Air -Traffic Control (ATC) center, and -numerous drones that were built in the -lab. The pipeline is currently broken, the -legacy code is out of date, and the -AirCRAFT Lab has not been able to -diagnose or repair these problems. -Currently, the main focus of our team is -to fix the pipeline to be able to control -multiple drones using VR. We are -establishing communication between -various software programs, and ensuring -that the physical connections are -properly configured. Ultimately, our goal -is to make the pipeline more robust than -it was previously, so that it doesn't break -again and can be expanded with more -drones, commands, distance, and usage. +We are currently accepting project requests. You can submit your request via this [Google Form](https://forms.gle/QwJYztXK5VrXG6K38). We will prioritize requests that: -Check out our +- Come from Saint Louis University +- Focus on tools that help with specific research goals +- Will help researchers obtain specific preliminary results -* [source code](https://github.com/oss-slu/Drones) -* [flyer](@site/static/pdf/drones.pdf). +## Current Capstone Projects -## Network Congestion-Control Emulator + +- [DADS (Database of Arithmetic Dynamical Systems)](project_dads/about) - The goal of this project is to create a flexible, web-based, search-driven user interface for a database of arithmetic dynamical systems +- ![DEER](project_deer/deer_100.jpg) **[Data Entry & Exhibition for Rerum](project_deer/about)** A designer's framework for non-destructive annotation and template rendering for distributed digital resources and collections. +- Drone World +- Gallery of Glosses +- MeltShiny +- ![Mouser](project_mouser/100x100.png) [**Mouser**](project_mouser/about) - This software is used for tracking the data of animal experiments. +- **[Pi4Micronaut](project_pi4micronaut/about)** - A Java library crafted for developers who aim to build IoT applications leveraging the Raspberry Pi platform. +- Rerum Geolocator +- ![Seeing Is Believing](project_sib/100x100.jpg) **[Seeing Is Believing](project_sib/about)** - An educational learning tool enabling visualizing the pronunciation of Spanish words. +- Shelter Volunteers +- ![Saltify](project_saltify/100x100.png) [**Speech Tagging**](project_saltify/about) - This software transcribes an audio sample into a written format that is accepted by SALT software. +- ![Where's Religion Desktop](project_wheres_religion_desktop/100x100.png) [**Where's Religion Desktop**](project_wheres_religion_desktop/about) - Where's Religion Desktop is an enhancement on the mobile version which will have extended features. +- ![Where's Religion Mobile](project_wheres_religion_mobile/100x100.png) [**Where's Religion Mobile**](project_wheres_religion_mobile/about) - This Project is to create an application for ethnographers to capture the events happening around them along with some audio/visual representation of the event. -![Diagram](@site/static/img/network.png) +## Current Internal Service Projects -The purpose of this project is to create a software capable of emulating different network scenarios -while evaluating these different congestion control protocols. The software generates evaluation reports in -terms of measurement metrics such as throughput, delays and jitters. +- Inner Peace Time +- iSpraak -Check out our +## Other Projects -* [source code](https://github.com/oss-slu/Congestion-control-emulator) -* [flyer](@site/static/pdf/network-control.pdf). +- ML Code Generator +- Congestion Control Emulator +- Python TBE Library +- Orca Converter/Extractor -## SALT +## Inactive Projects -![Saltify](@site/static/img/saltify.png) - -We look to be able to transcribe audio samples into a written format that is accepted by SALT (systematic analysis of language transcripts) software. SALT is an app that analyzes the speech of children and scores it according to their metrics. - -Check out our - -* [source code](https://github.com/oss-slu/SpeechTranscription) -* [flyer](@site/static/pdf/saltify.pdf). - -## Mouser - -![Mouse](@site/static/img/mouser.png) - -Mouser is a desktop app designed to optimize research -that uses animal experimentation. Animals are often used -in experiments to analyze the effects of drugs and other -products, and Mouser is a way to optimize this analysis. -Mouser will allow researchers to manage their own -scientific experiments, where they can enter animal -measurements, configure experiment information, and -control which users can access the experiment. Using -Mouser, animals can be measured in any way based on the -user’s specifications, like weight or blood pressure, and -this data can be managed easily with the application. - -Check out our - -* [source code](https://github.com/oss-slu/Mouser) -* [flyer](@site/static/pdf/mouser.pdf). - -## Pi4Micronaut - -![Raspberry Pi](@site/static/img/raspi.png) - -Our goal is to create a Java library using the -Micronaut Framework and Pi4J to streamline -the process of creating IoT web applications -which utilize hardware connectivity to -Raspberry Pi's. - -Check out our - -* [source code](https://github.com/oss-slu/Pi4Micronaut) -* [flyer](@site/static/pdf/Pi4MicronautFlyer.pdf). - -## Machine Learning Code Generator - -![Diagram](@site/static/img/mlcode.png) - -Machine Learning is a kind of Artificial Intelligence that is used to classify and predict unknown data. It is a powerful and versatile tool, but most people cannot write machine learning code. Therefore the majority of people cannot take advantage of Machine Learning. - -The goal of the project is to: - -- Help people from a broad range of disciplines to make new discoveries using their own data -- Increase access to Machine Learning technologies - -Check out our - -* [source code](https://github.com/kate-holdener/ml_code_generator) -* [flyer](@site/static/pdf/machine-learning.pdf). - -## Santiago - -![Neuron](@site/static/img/neuron.png) - -SBFSEM-tools is a MATLAB toolbox developed -by Sara Patterson for creating, analyzing and -visualizing Neuron models for the sake of -research and documentation. The project -includes multiple GUIs to interact with the data. - -Our project, Santiago, aims to continue that -effort by utilizing the existing MATLAB toolbox. -In its current state, many functions of the -toolbox require researchers to edit values in the -code, which can be difficult for people without a -computer science background. Our primary goal -is to make the SBFSEM-tools more accessible to -those not familiar with computer programming -or MATLAB. We would also like to make the -existing functionality accessible within a singular -user interface. - -Check out our - -* [source code](https://github.com/oss-slu/Santiago) -* [flyer](@site/static/pdf/santiago.pdf). - -## Scantron Software - -![Scantron](@site/static/img/scantron.png) - -Physical scantron machines are very slow and cost-ineffective. Our software eliminates the need for machines and makes it cost-efficient and fast. - -Check out our - -* [source code](https://github.com/rkarmuri/Scantron_Software) -* [flyer](@site/static/pdf/scantron.pdf). - -## Seeing Is Believing - -![Seeing-Is-Believing](@site/static/img/sib.png) - -Seeing Is Believing is a learning management tool that allows teachers to demonstrate the pronunciation of Spanish words. Students are able to practice their pronunciation through our website and see their progress as a collection of spectrograms. The spectrograms allow students to visualize the difference between their pronunciation and the pronunciation of a native speaker even if it's difficulty for them to hear it. - -Check out our - -* [source code](https://github.com/oss-slu/Seeing-is-Believing) -* [flyer](@size/static/pdf/SIBFlyer.pdf) - - -## T-PEN - -![Transcription](@site/static/img/tpen.png) - -T‑PEN is a web-based tool for working -with images of manuscripts. Users attach -transcription data (new or uploaded) to -the actual lines of the original -manuscript in a simple, flexible interface. - -Check out our - -* [source code](https://github.com/CenterForDigitalHumanities/TPEN28/tree/oss-dev) -* [flyer](@site/static/pdf/tpen.pdf). - -## MeltShiny - -![Graph](@site/static/img/graph.png) - -Researchers are currently using an old program -called MeltWin to analyze DNA absorbance data. -This program was designed over 20 years ago, -requires older computer systems, and lacks newer -features. Furthermore, a lack of source code -makes modification impossible. As such there is a -need for a newer program that both includes the -functions of MeltWin, runs on modern systems, -and introduces newer “automatic” features. - -Check out our - -* [source code](https://github.com/oss-slu/MeltWin2.0) -* [flyer](@site/static/pdf/meltshiny.pdf). +- DroneSwarm +- Santiago diff --git a/docs/project_dads/about.md b/docs/project_dads/about.md new file mode 100644 index 00000000..387e2f56 --- /dev/null +++ b/docs/project_dads/about.md @@ -0,0 +1,58 @@ +--- +id: about +title: DADS +custom_edit_url: null +--- + + + +## Overview + +The goal of this project is to create a flexible, web-based, search-driven user interface for a database of arithmetic dynamical systems. The web-based interface to access the data will be search-driven making tasks such as locating examples with specific properties or examining the collective statistics of certain sets of dynamical systems as simple as possible. This data will be able to be exported for further analysis. This type of searchable rich data set will save researchers countless hours of computation as well as provide a means to identify previously unknown patterns and connections. The application allows users to find and filter dynamical systems, with different statistics of the filtered results calculated. + + +### Information + +- **Source Code:** +- **Client** Dr Benjamin Hutz +- **Current Tech Lead:** Abhilash Kotha [GitHub](https://github.com/AbhilashKotha) [LinkedIn](https://www.linkedin.com/in/abhilashkotha/) +- **Developers:** + - [Evan Richmond](https://github.com/Evan-Richmond) (capstone) + - [Andrew Jelliss](https://github.com/AJelliss) (capstone) + - [Louis Rolwes](https://github.com/lRolwes) (capstone) + - [Greih Murray](https://github.com/GreihMurray) (alumni) + - [Josiah Glyshaw](https://github.com/jglyshaw) (alumni) + - [Thomas McGuigan](https://github.com/thomasmcg77) (alumni) + +- **Start Date:** Mar, 2023 +- **Adoption Date:** Mar, 2023 +- **Technologies Used:** + - React + - Flask + - PstgreSQL +- **Type:** Web application +- **License:** [MIT](https://opensource.org/license/mit) + +## Users + +Upon launching the web application the users are taken to the Home page of the application where they see information about the application. User needs to click on "Dynamical Systems" page which loads all the systems in the page in a table. User can apply filters based on dimension, degree, class and other attributes. User can also click on a row and can get more information about the selected row. On the right side, user can see a few statistics of the filtered results. + +## Technical Information + +## Overview + +Overview of the software architecture. +![Software Architecture](architecture.png) + +## Development Priorities + +- Complete implememting all the existing flters and statistics +- Interact with a larger set of data +- Improve the Queries and execution time +- Improve the UI and UX of the application +- Create documentation for the users of the application +- Implement the details page of the function with real data (currently static) + +## Get Involved + +If you would like to contribute to this project, please visit our [GitHub page](https://github.com/oss-slu/dads) to create your own issues or pull requests. \ No newline at end of file diff --git a/docs/project_dads/architecture.png b/docs/project_dads/architecture.png new file mode 100644 index 00000000..72ed3a10 Binary files /dev/null and b/docs/project_dads/architecture.png differ diff --git a/docs/project_dads/architecture.puml b/docs/project_dads/architecture.puml new file mode 100644 index 00000000..d3ca6859 --- /dev/null +++ b/docs/project_dads/architecture.puml @@ -0,0 +1,22 @@ +@startuml +!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml +!define DEVICONS https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/devicons +!define FONTAWESOME https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/font-awesome-5 + +!include DEVICONS/react.puml +!include DEVICONS/python.puml +!include DEVICONS/postgresql.puml +!include FONTAWESOME/users.puml +LAYOUT_WITH_LEGEND() + +Person(User, "Users", $sprite="users") +Boundary(b1, "Our Application"){ + Container(dadsAppClient, "Application User Interface", "React", $sprite="react") + Container(dadsAppServer, "Server-side application", "Flask", $sprite="python") + ContainerDb(mathematicalSystems, "Mathematical Systems", "PostgreSQL", $sprite="postgresql") +} + +Rel(User, dadsAppClient, "Use", "Web Browswer") +Rel(dadsAppClient, dadsAppServer, "Requests data about mathematical systems", "HTTPS") +Rel(dadsAppServer, mathematicalSystems, "Reads") +@enduml \ No newline at end of file diff --git a/docs/project_deer/about.md b/docs/project_deer/about.md new file mode 100644 index 00000000..fe10b06b --- /dev/null +++ b/docs/project_deer/about.md @@ -0,0 +1,73 @@ +--- +id: about-deer +title: Data Entry & Exhibition for Rerum +custom_edit_url: null +--- + +![Data Entry & Exhibition for Rerum header image](https://deer.rerum.io/images/deerlogo_banner.jpg) + +## Overview + +DEER is a framework for designers to quickly template web components for exhibition or data entry. By default, these components all follow the Rerum API, connect to the public sandbox instance of RERUM, and simplify descriptive annotation. + +### Information + +- **Source Code:** +- **Client**: Research Computing Group, Saint Louis University +- **Current Tech Lead:** [Bryan Haberberger](https://github.com/theHabes) +- **Developers:** + - https://github.com/sophiabahru (capstone) + - https://github.com/Regorh (capstone) + - https://github.com/cubap (RCG staff) + - https://github.com/theHabes (RCG staff) +- **Start Date:** April 2019 +- **Adoption Date:** August 2023 +- **Technologies Used:** + - Web Components, + - JavaScript, + - HTML, CSS +- **Type:** Web +- **License:** none +- **Version:** 0.92 + +## User Guide + +Instructions for use are available in the [project wiki](https://github.com/CenterForDigitalHumanities/deer/wiki/Using-DEER-in-your-project). +Examples can be seen at https://deer.rerum.io. + +## Technical Information + +This framework is intended to be used by designers as web components which can be extended for needed customization without much knowledge beyond what is typically required by other templating or component libraries or systems. Any opportunity to adhere more tightly to standards or simplify the experience for designers is encouraged.. + +The choice to use as much plain JavaScript as possible is made to allow for the greatest flexibility in the future. It is not off the map to create ports into other languages or super-languages, but until we release 1.0, it is out of scope. + +### Overview + +The original design in the alpha releases is less bound to standards than the release candidate because the Web Component standard was not established yet and most of the air was taken up by new React flavors. + +The framework splits concerns into two main camps: Forms and Views + +#### Forms + +Simple forms look familiar, but instead of saving an entire document, the fields are saved as annotations on the resource identified in the `
` element's `deer-id` attribute. An `$isDirty` property is used to tell when a value has been modified to honor the versioning requirements. Complex form fields can be created, but requires a little more fluency in the DEER events. A NoticeBoard class is used as a pubsubhub bus to allow for the notification of changes to the data rendered in the form. + +#### Views + +Views are very similar to the data-binding template systems though it does not have a bespoke syntax like Handlebars or Angular. In the exhibition use case, a view is a simple way to collect a document from the database with all the annotations that describe it. The `deer-template` element is usde in older versions and in hte 1.0 RC, the element itself is registered as a template. + +In either case, a View is registered by `deer-id` attribute and standard Web Component lifecycle methods are used to render the resource. + +### Development Priorities + +- Release Candidate 1.0 with Web Components +- Simple template creation +- Improve handling of complex forms +- Tidy up events for customization +- Mirror some client-side functionality on RERUM + +## Get Involved + + + + +Overview of contribution and participation information, and links to any [contributors guide](https://github.com/CenterForDigitalHumanities/deer/blob/main/CONTRIBUTING.md) diff --git a/docs/project_deer/deer_100.jpg b/docs/project_deer/deer_100.jpg new file mode 100644 index 00000000..9a927d38 Binary files /dev/null and b/docs/project_deer/deer_100.jpg differ diff --git a/docs/project_deer/deerlogo_sqr.jpg b/docs/project_deer/deerlogo_sqr.jpg new file mode 100644 index 00000000..d8857e4d Binary files /dev/null and b/docs/project_deer/deerlogo_sqr.jpg differ diff --git a/docs/project_mouser/100x100.png b/docs/project_mouser/100x100.png new file mode 100644 index 00000000..056ab4fb Binary files /dev/null and b/docs/project_mouser/100x100.png differ diff --git a/docs/project_mouser/about.md b/docs/project_mouser/about.md new file mode 100644 index 00000000..307287fb --- /dev/null +++ b/docs/project_mouser/about.md @@ -0,0 +1,57 @@ +--- +id: about +title: Mouser +custom_edit_url: null +--- + +## Overview + +![Alt](100x100.png) Created mainly for SLU researchers, this software is used for collecting and analyzing data from animal experiments. While in the lab, scientists are often required to keep their environments very clean, which means that they must limit how much they touch the computers and lab equipment. To facilitate this, Mouser allows laboratory equipment (balances, calipers, RFID chip readers) to be connected to a PC, and researchers can quickly take repeated measurements with as little interaction as possible. Running as a desktop app, users of the software can create and manage experiments in one easy place. Animals implanted with RFID biochips can be scanned into the system for easy identification and data access. Once a session is started, the user is able to take measurements of the animals using devices connected to the computer without having to use the keyboard or the mouse. The program gives confirmation to the user through sounds and changes in display, allowing them to focus on the experiment. + +### Information + +- **Source Code:** +- **Client:** Dr. Karoly Toth +- **Current Tech Lead:** [Logan Wyas](https://github.com/loganwyas) +- **Developers:** + + - [Ryan Carmody](https://github.com/rc10283) (capstone) + - [Andrew Obermiller](https://github.com/aobermiller) (capstone) + - [Stanley Yang](https://github.com/stanleyyang2001) (capstone) + - [Uday Prasad Aitha](https://github.com/aithaprasad) (alumni, previous tech lead) + - [Tyler Bush](https://github.com/tbush03) (alumni) + - [Cori Diaz](https://github.com/coridiaz) (alumni) + +- **Start Date:** July 2022 +- **Adoption Date:** July 2022 +- **Technologies Used:** + - Python + - Tkinter + - PySerial + - SQLite +- **Type:** Desktop +- **License:** [GNU General Public License v3.0](https://opensource.org/license/gpl-3-0/) + +## User Guide + +Upon running the software, you will first login using the account information you have been given. Then, to get to the main part of the application, click on the "Experiments" button. This will bring you to a page with have a list of experiments and the option to create a new experiment. If chosing to create a new experiment, you will enter in all of the experiment information that is necessary for the application. If you click on one of the experiments, it will bring you to the menu of that experiment. From there, you have the option to map animals with RFID, collect measurement data, and configure animal groups. + +## Technical Information + +### Overview + +Overview of the software architecture. +![Software Architecture](architecture.png) + +### Development Priorities + +- Connect the application to hardware devices +- Create a modern-looking user interface +- Add automated testing +- Implement account management +- Build an executable for the software +- Make warning/error screens to prevent internal issues + +## Get Involved + +If you would like to contribute to this project, please visit our [GitHub page](https://github.com/oss-slu/Mouser) to create your own issues or pull requests. diff --git a/docs/project_mouser/architecture.png b/docs/project_mouser/architecture.png new file mode 100644 index 00000000..0961c4ea Binary files /dev/null and b/docs/project_mouser/architecture.png differ diff --git a/docs/project_mouser/architecture.puml b/docs/project_mouser/architecture.puml new file mode 100644 index 00000000..9c53e575 --- /dev/null +++ b/docs/project_mouser/architecture.puml @@ -0,0 +1,46 @@ +@startuml +!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml +!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml + +!define DEVICONS https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/devicons +!define DEVICONS2 https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/devicons2 +!define FONTAWESOME https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/font-awesome-5 +!include DEVICONS2/python.puml +!include DEVICONS/sqllite.puml +!include FONTAWESOME/file_excel.puml +!include FONTAWESOME/file_alt.puml +!include FONTAWESOME/file_word.puml +!include FONTAWESOME/copy.puml +!include FONTAWESOME/box_open.puml +!include FONTAWESOME/microchip.puml + +UpdateElementStyle(external_system, $sprite="box_open", $legendText="external package", $shape=RoundedBoxShape()) +UpdateElementStyle(external_person, $sprite="person", $legendText="user") +UpdateElementStyle(container, $legendText="internal component", $sprite="copy") + +AddRelTag("uses", $lineStyle = DashedLine(), $legendText="using package\ndashed") + +Person_Ext(users, "End Users") + +System_Boundary(c1, "Mouser"){ + Container(MA, "Mouser Application", "Python", "Tracks the data of animal experiments", $sprite="python") + Container(setup, "Setup", "", "Create an experiment and provide the initial information about it", $sprite="file_alt") + Container(map, "Map RFID", "", "Input the RFIDs of the animals in the experiment", $sprite="file_excel") + Container(data, "Data Collection", "", "Collect measurement data from the animals", $sprite="file_excel") + Container(database, "Experiment Database", "SQLite", "Holds the information about the experiment(s)", $sprite="sqllite") +} +System_Ext(pyserial, "PySerial", "Uses a computer's serial ports to read data from external devices") + +Rel_D(MA, setup, "") +Rel_D(MA, data, "") +Rel_D(MA, map, "") +Rel_D(setup, database, "Writes") +Rel_D(map, database, "Writes") +Rel_D(data, database, "Reads/Writes") +Rel(data, pyserial, "Uses", "Python Library", $tags="uses") +Rel(map, pyserial, "Uses", "Python Library", $tags="uses") +Rel_D(users, MA, "Interact with", "Graphical User Interface") + +SHOW_LEGEND() + +@enduml \ No newline at end of file diff --git a/docs/project_pi4micronaut/about.md b/docs/project_pi4micronaut/about.md new file mode 100644 index 00000000..d87a112a --- /dev/null +++ b/docs/project_pi4micronaut/about.md @@ -0,0 +1,74 @@ +--- +id: about +title: Pi4Micronaut +custom_edit_url: null +--- + +![Pi4Micronaut-Header](header-pi4micronaut.png) +## Overview + +Pi4Micronaut is an innovative Java library crafted for developers who aim to build Internet of Things (IoT) applications leveraging the Raspberry Pi platform. This software is designed to run directly on the Raspberry Pi, providing an interface between the high-level Micronaut framework and the low-level hardware control provided by Pi4J. It serves as a vital tool for Java developers who wish to create sophisticated IoT solutions that interact with various sensors and electronic components. By abstracting the complexity of hardware interactions, Pi4Micronaut allows developers to focus on crafting business logic and features, making it easier to bring IoT applications from concept to deployment rapidly. + +The existence of Pi4Micronaut is justified by the need for a robust, scalable, and efficient way to bridge the gap between enterprise-grade software and the physical world of hardware. It is particularly valuable for projects that demand both the high-performance, microservices-oriented capabilities of the Micronaut framework and the versatile hardware interaction that the Raspberry Pi offers. Whether it's for home automation, industrial monitoring, or educational purposes, Pi4Micronaut empowers developers to deliver reliable and sophisticated IoT applications that can run headless on a Raspberry Pi or be managed remotely, providing convenience, control, and customization to the end-users. + +### Information + +- **Source Code:** +- **Client** Jeff Brown - Unity Foundation +- **Current Tech Lead:** [Ruthvik Mannem](https://github.com/ruthvikm) +- **Developers:** + - [Adrian Swindle](https://github.com/SwindleA) (capstone) + - [Alex Delgado](https://github.com/adelgadoj3) (capstone) + - [Joe Folen](https://github.com/joefol) (capstone) + - [John Yanev](https://github.com/jyanev) (capstone) + - [Greih Murray](https://github.com/GreihMurray) (alumni) + - [Austin Howard](https://github.com/austinjhoward) (alumni) + - [Traison Diedrich](https://github.com/traison-diedrich) (alumni) + - [Sinuo Liu](https://github.com/liusinuo2000) (alumni) + +- **Start Date:** March 09, 2023 +- **Adoption Date:** March 09, 2023 +- **Technologies Used:** + - Java + - Micronaut Framework + - Pi4J Library +- **Type:** IOT(Raspberry Pi) +- **License:** [Apache License 2.0](https://opensource.org/license/apache-2-0/) + +## Users + +Pi4Micronaut is designed for Java developers who need to create IoT applications on the Raspberry Pi. To use this software, a developer would include the Pi4Micronaut library in their Java project, leveraging a build tool like Maven or Gradle for dependency management. The software facilitates interaction with the hardware peripherals of the Raspberry Pi via the GPIO pins, making use of the Micronaut framework's easy-to-use, compile-time dependency injection and aspect-oriented programming capabilities. To use it, developers include the Pi4Micronaut library in their Java project, write the application logic, and deploy it on the Raspberry Pi. The software abstracts the complexity of hardware interaction, allowing developers to focus on the application functionality and logic, thereby enabling the creation of efficient, scalable IoT solutions. + + +[Pi4Micronaut Documentation](https://oss-slu.github.io/Pi4Micronaut/index.html) + +## Technical Information + +Pi4Micronaut serves as a bridge between the JVM and the physical computing capabilities of Raspberry Pi. It's an integration framework that brings together the lightweight, reactive programming model of Micronaut with the comprehensive GPIO control provided by Pi4J. This combination allows developers to write Java applications that can directly control and respond to physical hardware events. + +- Deep Dive into Pi4Micronaut's Architecture + + - **Micronaut Integration**: Pi4Micronaut integrates deeply with Micronaut's dependency injection and AOP capabilities, allowing developers to declaratively wire hardware control logic into their application components. + + - **Pi4J Core**: At the heart of Pi4Micronaut is the Pi4J library, which provides the necessary abstraction to communicate with the GPIO pins on the Raspberry Pi. Pi4Micronaut extends this functionality, making it available in a Micronaut-friendly way. + + - **Event-Driven Hardware Interaction**: Pi4Micronaut simplifies the process of handling hardware events. Using Micronaut's event listeners and Pi4J's GPIO callbacks, it orchestrates interactions between the application and the physical components attached to the Raspberry Pi. + +## Overview + +Here is an overview of the software architecture. + +![Software Architecture](architecture.png) + +## Development Priorities + +- Integrate new components +- Enhance existing component functionalities +- Fixing build errors +- Developing Test Suite +- Documentation for each component + +## Get Involved + +Contributing to the Pi4Micronaut Library involves a range of activities from bug fixes and feature enhancements to documentation improvements. To ensure that your contributions can be integrated smoothly, please review the [Contributors Guide](https://oss-slu.github.io/Pi4Micronaut/index.html#_contribute_to_the_pi4micronaut_library). This guide will cover the necessary steps, including understanding the project's scope, the types of contributions you can make, and the process for submitting your changes. Additionally, signing the Contributor License Agreement (CLA) is a crucial step that must be completed by all contributors. Your participation is invaluable, and we encourage you to join our community of developers in enhancing the Pi4Micronaut Library. + diff --git a/docs/project_pi4micronaut/architecture.png b/docs/project_pi4micronaut/architecture.png new file mode 100644 index 00000000..4cc861c4 Binary files /dev/null and b/docs/project_pi4micronaut/architecture.png differ diff --git a/docs/project_pi4micronaut/architecture.puml b/docs/project_pi4micronaut/architecture.puml new file mode 100644 index 00000000..1e78c086 --- /dev/null +++ b/docs/project_pi4micronaut/architecture.puml @@ -0,0 +1,50 @@ +@startuml +!theme C4_united from https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/themes +!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml +!define DEVICONS https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/devicons +!define DEVICONS2 https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/devicons2 +!define FONTAWESOME https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/font-awesome-5 + +!include DEVICONS2/java.puml +!include DEVICONS/raspberry_pi.puml +!include FONTAWESOME/users.puml + + +Person(Developer, "Developer") +Container(IOT, "IOT Application", "Java", "Application that runs on Raspberry pi", $sprite="java") + +System_Boundary(pi4m,"Pi4Micronaut"){ +System(Pi4Micronaut, "Pi4Micronaut", "Library for Raspberry Pi integration, written in Java, offers enhanced IoT capabilities") +Container(Micronaut, "Micronaut", "Java", "Framework that offers microservice architecture") +Container(Pi4J, "Pi4J", "Java", "Library for Raspberry Pi, provides easy access to GPIO") +Container(Jar, "Jar", "", "Java application file", $sprite="java") +} + + +System_Ext(pi, "RaspberryPi","runs Jar file", raspberry_pi){ +Boundary(GPIO, "GPIO Extension Board"){ +Container(ElecComp, "Electronic Components", "Physical components managed by GPIO calls, react to software commands") +} +} + +Lay_R(Developer,pi4m) +Lay_R(Micronaut,Pi4J) +Lay_D(Pi4J, Pi4Micronaut) +Lay_D(Pi4J, Pi4Micronaut) +Lay_D(Pi4Micronaut, Jar) +Lay_D(Pi4Micronaut, Jar) +Lay_D(Pi4Micronaut, Jar) +Lay_D(Pi4Micronaut, Jar) +Lay_D(Jar, pi) + +Rel_R(Micronaut, Pi4J,"") +Rel(Developer, IOT, "Develops" ) +Rel_R(IOT, Pi4Micronaut , "using", "Gradle/Maven") +Rel(IOT, pi, "Test Application .", "SSH") +Rel(Pi4Micronaut, Jar, "Builds") +Rel(Pi4Micronaut,Micronaut,"") +Rel(Pi4Micronaut,Pi4J,"") +Rel(Jar, pi, "") + +SHOW_DYNAMIC_LEGEND() +@enduml \ No newline at end of file diff --git a/docs/project_pi4micronaut/header-pi4micronaut.png b/docs/project_pi4micronaut/header-pi4micronaut.png new file mode 100644 index 00000000..41eedfda Binary files /dev/null and b/docs/project_pi4micronaut/header-pi4micronaut.png differ diff --git a/docs/project_saltify/100x100.png b/docs/project_saltify/100x100.png new file mode 100644 index 00000000..61111ac0 Binary files /dev/null and b/docs/project_saltify/100x100.png differ diff --git a/docs/project_saltify/about.md b/docs/project_saltify/about.md new file mode 100644 index 00000000..efcd268d --- /dev/null +++ b/docs/project_saltify/about.md @@ -0,0 +1,63 @@ +--- +id: about +title: Speech Transcription (Saltify) +custom_edit_url: null +--- + +## Overview + +![Alt](100x100.png) Children naturally produce speech sound errors, language errors, and language features, such as disfluencies. Language errors and features are diagnostically meaningful to speech-language pathologists (SLPs) and need to be maintained in the transcription. The primary purpose of the application is to transcribe an audio sample into a written format that is accepted by SALT software. SALT software is commercially-licensed software that analyzes the speech of children and scores it according to their metrics. Our application can currently transcribe audio samples of a conversation between a child and an adult into text. It also allows users to add grammar checking to the transcription, which looks for possible errors in grammar within the text. + +_Note: careful review by a knowledgeable speech-language pathologist is required for an accurate final product._ + +### Information + +- **Source Code:** +- **Clients:** + - [Dr. Sara Steele](https://www.slu.edu/doisy/faculty/steele-sara.php) + - [Dr. Elizabeth Roepke](https://www.slu.edu/doisy/faculty/roepke-elizabeth.php) +- **Current Tech Lead:** [Logan Wyas](https://github.com/loganwyas) +- **Developers:** + + - [Colin Bush](https://github.com/cbush201) (capstone) + - [Travis Herrick](https://github.com/TravisHerrick7) (capstone) + - [Jack Pifer](https://github.com/JackPifer) (capstone) + - [Omar Al Akkad](https://github.com/OmarAlAkkad) (alumni, previous tech lead) + - [Sean Gerty](https://github.com/gertysr) (alumni) + - [Drew Hediger](https://github.com/ahediger) (alumni) + - [Jake Wahle](https://github.com/jakewahle) (alumni) + +- **Start Date:** September 2022 +- **Adoption Date:** September 2022 +- **Technologies Used:** + - Python + - Tkinter / CustomTkinter + - NLTK + - PyAudio + - OpenAI Whisper + - [SALT](https://www.saltsoftware.com/) +- **Type:** Desktop +- **License:** [GNU General Public License v3.0](https://opensource.org/license/gpl-3-0/) + +## User Guide + +Upon running the software, you will be given the option to either upload an audio file, or record one yourself. If choosing to upload a file, you can upload either an MP3 or a WAV file. Assuming that the audio is successfully added, you are ready to transcribe it. You will then click the "Transcribe" button to start the transcription process. After the transcribing finishes, the transcription will appear on the screen. You can play the audio file and look over the transcription at the same time, checking if there are any errors. You will then decide whether you want to do manual/automatic grammar checking through the program, or you can let the program add morphemes to the transcription. Once everything with the transcription is complete, you can export the transcription to a Word document. + +## Technical Information + +### Overview + +Overview of the software architecture. +![Software Architecture](architecture.png) + +### Development Priorities + +- Improve the user interface +- Add diarization to the transcription +- Fix the errors when adding morphemes +- Implement automated testing +- Address the freezing of certain processes + +## Get Involved + +If you would like to contribute to this project, please visit our [GitHub page](https://github.com/oss-slu/SpeechTranscription/) to create your own issues or pull requests. diff --git a/docs/project_saltify/architecture.png b/docs/project_saltify/architecture.png new file mode 100644 index 00000000..3749ee0a Binary files /dev/null and b/docs/project_saltify/architecture.png differ diff --git a/docs/project_saltify/architecture.puml b/docs/project_saltify/architecture.puml new file mode 100644 index 00000000..2ab25184 --- /dev/null +++ b/docs/project_saltify/architecture.puml @@ -0,0 +1,42 @@ +@startuml +!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml +!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml + +!define DEVICONS https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/devicons +!define DEVICONS2 https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/devicons2 +!define FONTAWESOME https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/font-awesome-5 +!include DEVICONS2/python.puml +!include FONTAWESOME/file_audio.puml +!include FONTAWESOME/file_alt.puml +!include FONTAWESOME/file_word.puml +!include FONTAWESOME/copy.puml +!include FONTAWESOME/box_open.puml + +UpdateElementStyle(external_system, $sprite="box_open", $legendText="external package", $shape=RoundedBoxShape()) +UpdateElementStyle(external_person, $sprite="person", $legendText="user") +UpdateElementStyle(container, $legendText="internal component", $sprite="copy") + +AddRelTag("uses", $lineStyle = DashedLine(), $legendText="using package\ndashed") + +Person_Ext(users, "End Users") + +System_Boundary(c1, "Saltify"){ + Container(STA, "Speech Transcription Application", "Python", "Convert audio samples to a written format", $sprite="python") + Container(audio, "Audio Manager", "", "analyzes and modifies audio", $sprite="file_audio") + Container(transcriber, "Transcriber", "", "transcribes and diarizes audio files", $sprite="file_word") + Container(grammar, "Grammar Checker", "", "fixes the grammar and morphemes of text", $sprite="file_alt") +} +System_Ext(whisper, "OpenAI Whisper", "Takes audio files and converts them into a transcription") +System_Ext(pyaudio, "PyAudio", "Plays and records audio files") +System_Ext(nltk, "Natural Language Toolkit (NLTK)", "Analyzes text, finds errors in grammar, and adds morphemes where necessary") + +Rel_D(STA, audio, "transfer audio data") +Rel_D(STA, transcriber, "transfer transcription text") +Rel_D(STA, grammar, "modify transcription") +Rel(transcriber, whisper, "Uses", "Python Library", $tags="uses") +Rel(audio, pyaudio, "Uses", "Python Library", $tags="uses") +Rel(grammar, nltk, "Uses", "Python Library", $tags="uses") +Rel_D(users, STA, "Interact with", "Graphical User Interface") + +SHOW_LEGEND() +@enduml \ No newline at end of file diff --git a/docs/project_sib/100x100.jpg b/docs/project_sib/100x100.jpg new file mode 100644 index 00000000..63c09260 Binary files /dev/null and b/docs/project_sib/100x100.jpg differ diff --git a/docs/project_sib/about.md b/docs/project_sib/about.md new file mode 100644 index 00000000..3a7ba477 --- /dev/null +++ b/docs/project_sib/about.md @@ -0,0 +1,56 @@ +--- +id: about +title: Seeing-Is-Believing +custom_edit_url: https://seeing-is-believing.herokuapp.com/ +--- + +## Overview + +![Alt](100x100.jpg) The objective of this project is to create an educational learning tool enabling teachers to showcase the pronunciation of Spanish words. Students can use this application to practice pronunciation, observing their improvement through a compilation of spectrograms. + +### Information + +- **Source Code:** +- **Client:** + - [Dr. Christina Garcia](https://www.slu.edu/arts-and-sciences/languages-literatures-cultures/faculty/garcia-christina.php) +- **Current Tech Lead:** [Sailikhita Pulijala](https://github.com/LikhitaPulijala) +- **Developers:** + + - [Anna Kidwell](https://github.com/akidSLU) (capstone) + - [Owen Thomasson](https://github.com/OwenAThomasson) (capstone) + - [Miles Monday](https://github.com/mmonday0) (capstone) + - [Halima Malik](https://github.com/HalimaMalik) (alumni, previous tech lead) + - [Sivaprasad Vishnu](https://github.com/sivaprasadvishnu18) (alumni) + - [Carlos Salinas](https://github.com/carlossalinas6) (alumni) + - [Daniel Mao](https://github.com/danmao1) (alumni) + +- **Start Date:** July 2022 +- **Adoption Date:** July 2022 +- **Technologies Used:** + - React + - NextJS + - Firebase +- **Type:** Web Application +- **License:** [GNU General Public License v3.0](https://opensource.org/license/gpl-3-0/) + +## User Guide + +This application provides login and registration features, offering three distinct roles: Admin, Teacher, and Student. Teachers can manage classes, add homework, and access the words library. Students can practice words, check grades, and view homework assignments. Admins have full access to the entire application, including all modules. + +## Technical Information + +### Overview + +![Software Architecture](architecture.png) + +### Development Priorities + +- Latest versions of npm, node, and react are essential +- Create a modern-looking user interface +- Incorporate automated testing +- Prioritize version control and collaboration +- Optimize performance + +## Get Involved + +If you would like to contribute to this project, please visit our [GitHub page](https://github.com/oss-slu/Seeing-is-Believing) to create your own issues or pull requests. diff --git a/docs/project_sib/architecture.png b/docs/project_sib/architecture.png new file mode 100644 index 00000000..d65a0963 Binary files /dev/null and b/docs/project_sib/architecture.png differ diff --git a/docs/project_sib/architecture.puml b/docs/project_sib/architecture.puml new file mode 100644 index 00000000..5834cd6f --- /dev/null +++ b/docs/project_sib/architecture.puml @@ -0,0 +1,39 @@ +@startuml +!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml +!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml + +!define DEVICONS https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/devicons +!define DEVICONS2 https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/devicons2 +!define FONTAWESOME https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/font-awesome-5 +!include DEVICONS2/python.puml +!include DEVICONS/sqllite.puml +!include FONTAWESOME/file_excel.puml +!include FONTAWESOME/file_alt.puml +!include FONTAWESOME/file_word.puml +!include FONTAWESOME/copy.puml +!include FONTAWESOME/box_open.puml +!include FONTAWESOME/microchip.puml + + + +Person_Ext(users, "End Users") + +Boundary(b1, "Seeing Is Believing"){ + Container(MA, "Learning Management Tool", "React+NextJS", "Able to practice pronunciation of Spanish words", $sprite="react") + Container(setup, "Login/Register", "", "This application offers three distinct user roles: Administrator, Teacher, and Student. Users can register for their respective universities and subsequently login.", $sprite="") + Container(map, "Spectogram Views", "", "It is a visual representation of different frequencies in spoken words. It can enhance the understanding and pronunciation of spoken language.", $sprite="") + Container(data, "Words Collection", "", "Additional word collection sets can be incorporated and utilized.", $sprite="") + + Container(database, "Database", "Firebase", "Stores information regarding classes, assignments, words and user data", $sprite="") +} + +Rel_D(MA, setup, "require") +Rel_D(MA, map, "have") +Rel_D(MA, data, "add") +Rel_D(setup, database, "Reads/Writes") +Rel_D(map, database, "Writes") +Rel_D(data, database, "Reads/Writes") +Rel_R(users, MA, "Interact with", "Graphical User Interface") + +SHOW_LEGEND() +@enduml \ No newline at end of file diff --git a/docs/project_wheres_religion_desktop/100x100.png b/docs/project_wheres_religion_desktop/100x100.png new file mode 100644 index 00000000..dc7ef0e4 Binary files /dev/null and b/docs/project_wheres_religion_desktop/100x100.png differ diff --git a/docs/project_wheres_religion_desktop/about.md b/docs/project_wheres_religion_desktop/about.md new file mode 100644 index 00000000..e2d2eaf6 --- /dev/null +++ b/docs/project_wheres_religion_desktop/about.md @@ -0,0 +1,62 @@ +--- +title: Where's Religion Desktop +custom_edit_url: https://github.com/oss-slu/lrda_website +--- + +![Alt](100x100.png) + +## Overview + +Where's Religion? is conceptualized and designed for diverse users with interests in sharing media and notes about their respective encounters with "religion" in everyday places. Nearly all digital humanities scholarship in religion, theology, and adjacent fields perpetuates historical biases of text-based knowledge and media. While texts are no doubt essential to these fields, the premise of Where’s Religion? has been to create tools for acknowledging, analyzing, and interpreting religion as a multisensory and multimodal component of human life, both within faith traditions and beyond them in the fabrics of culture and society. We believe that it is time for our research methodologies to catch up with the realities of human experience and that creating a platform for collecting, organizing, and sharing images, videos, and sounds, along with textual notations, sourced from a wide range of users, is a necessary place to start. We also believe that the resulting collection of materials will be of immense value to American public life. + +### Information + +- **Source Code:** +- **Client** Dr. Adam Park +- **Current Tech Lead:** [Yash Bhatia]([portfolio](https://yashb196.github.io/yashb196/), [github](https://github.com/yashb196), [linkedin](https://www.linkedin.com/in/yashbhatia238/).) +- **Developers:** + - [Stuart Ray](https://github.com/Stuartwastaken)(capstone) + - [Izak Robles](https://github.com/izakrobles)(capstone) + - [Josh Hogan](https://github.com/Josh-Hogan-87)(capstone) + + - [Varsith Reddy Legala](https://github.com/VarsithReddyLegala)(volunteer) +- **Start Date:** 25 Aug 2023 +- **Adoption Date:** 25 Aug 2023 +- **Technologies Used:** + - Tech Stack: React , TypeScript, JavaScript​​. + - Key Languages: TypeScript, JavaScript​​​​. + - Key Frameworks: Next JS, Tailwind CSS​. + - Databases: Rerum Website​. + - Critical Dependencies: Node.js, JavaScript, pnpm​​​​​​. +- **Type:** Desktop +- **License:** [MIT](https://opensource.org/license/mit/) + +## Users + +- End user will log into the application +- When logged in there will be an option to either view global notes(notes that other people published) or view an empty page with a button on the left "Add Note" which will enable the user to create a note. +- once clicked on the button the user can then add a title (manditory) along with audio/video/photo/ tags(manditory) and text for the note +- click on the top right icon to make it public +- if you still need it private go back. +- map will represent all the global notes and where it is generated (similar to the mobile application). +- user can search an entry based on the tags mentioned in the post. +, and link to the Where's Religion Documentation[detailed user-oriented documentation](https://github.com/oss-slu/lrda_website/blob/main/README.md). + +## Technical Information + +## Overview +Overview of the software architecture. +![Software Architecture](architecture.png) + +Where’s Religion is an open-source mobile and desktop application that supports in-person research, remote data entry, media sharing, and mapping. To do this, the mobile app enables users to collect fieldnotes, images, videos, and audio files - all geotagged and timestamped. The desktop companion app provides a more feature-rich format to refine fieldnotes, make new entries, or, for certain user profiles, review or grade other users’ entries. When published, all entries are automatically curated on a publicly available, interactive map with search and filter functions for research. We have conceptualized and designed for students, researchers, and public users to document and share their respective encounters with “religion” in everyday life – all with the intended purpose of democratizing data collection and visualizing religious diversity at scale. + +## Development Priorities + +- There is user interface changes required which should follow (ShadCN)[https://github.com/shadcn-ui/ui] +- The Pages to add note/edit note should have the functionality to access photos and videos from local systems. +- The Map Page should be built based on either open street maps or leaflet. +- The notes should be fetched onto the home page. + +## Get Involved + +Overview of contribution and participation information, [contributors guide](https://github.com/oss-slu/lrda_website/blob/main/README.md) diff --git a/docs/project_wheres_religion_desktop/architecture.png b/docs/project_wheres_religion_desktop/architecture.png new file mode 100644 index 00000000..6655ec3f Binary files /dev/null and b/docs/project_wheres_religion_desktop/architecture.png differ diff --git a/docs/project_wheres_religion_mobile/100x100.png b/docs/project_wheres_religion_mobile/100x100.png new file mode 100644 index 00000000..dc7ef0e4 Binary files /dev/null and b/docs/project_wheres_religion_mobile/100x100.png differ diff --git a/docs/project_wheres_religion_mobile/about.md b/docs/project_wheres_religion_mobile/about.md new file mode 100644 index 00000000..93cfe23d --- /dev/null +++ b/docs/project_wheres_religion_mobile/about.md @@ -0,0 +1,64 @@ +--- +title: Where's Religion Mobile +custom_edit_url: https://github.com/oss-slu/lrda_mobile +--- + + +![Alt](100x100.png) + +## Overview + + Where's Religion? is conceptualized and designed for diverse users with interests in sharing media and notes about their respective encounters with "religion" in everyday places. Nearly all digital humanities scholarship in religion, theology, and adjacent fields perpetuates historical biases of text-based knowledge and media. While texts are no doubt essential to these fields, the premise of Where’s Religion? has been to create tools for acknowledging, analyzing, and interpreting religion as a multisensory and multimodal component of human life, both within faith traditions and beyond them in the fabrics of culture and society. We believe that it is time for our research methodologies to catch up with the realities of human experience and that creating a platform for collecting, organizing, and sharing images, videos, and sounds, along with textual notations, sourced from a wide range of users, is a necessary place to start. We also believe that the resulting collection of materials will be of immense value to American public life. + +### Information + +- **Source Code:** +- **Client** Dr. Adam Park +- **Current Tech Lead:** [Yash Bhatia]([portfolio](https://yashb196.github.io/yashb196/), [github](https://github.com/yashb196), [linkedin](https://www.linkedin.com/in/yashbhatia238/).) +- **Developers:** + - [Andrew Chen](https://github.com/AndchooChen) (capstone) + - [Tom Irvine](https://github.com/irvinet20) (capstone) + - [Tianhao Wang](https://github.com/SamSam9812) (capstone) + + -[Stuart Ray](https://github.com/Stuartwastaken)(alumni) + -[Izak Robles](https://github.com/izakrobles)(alumni) +- **Start Date:** 20 Feb 2023 +- **Adoption Date:** 20 Feb 2023 +- **Technologies Used:** + - Tech Stack: React Native, TypeScript, JavaScript​​. + - Key Languages: TypeScript, JavaScript, Expo​​​​. + - Key Frameworks: React Native, Expo CLI ​​. + - Databases: Rerum. + - Critical Dependencies: Node.js, JavaScript, Yarn. +- **Type:** Mobile +- **License:** [MIT](https://opensource.org/license/mit/) + +## User Guide + +- End user will log into the application +- When logged in there will be an option to either view global notes(notes that other people published) or view an empty page with a + sign at the bottom to add a note +- once clicked on + the user can then add a title (manditory) along with audio/video/photo/ tags(manditory) and text for the note +- click on the top right icon to make it public +- if you still need it private go back. +- map icon will represent all the global notes and where it is generated. +, and link to the Where's Religion Documentation[detailed user-oriented documentation](https://github.com/oss-slu/lrda_mobile/blob/main/README.md). + +## Technical Information + +## Overview +Overview of the software architecture. +![Software Architecture](architecture.png) + +Where’s Religion is an open-source mobile and desktop application that supports in-person research, remote data entry, media sharing, and mapping. To do this, the mobile app enables users to collect fieldnotes, images, videos, and audio files - all geotagged and timestamped. The desktop companion app provides a more feature-rich format to refine fieldnotes, make new entries, or, for certain user profiles, review or grade other users’ entries. When published, all entries are automatically curated on a publicly available, interactive map with search and filter functions for research. We have conceptualized and designed for students, researchers, and public users to document and share their respective encounters with “religion” in everyday life – all with the intended purpose of democratizing data collection and visualizing religious diversity at scale. + +## Development Priorities + +- The app does not compile to the web due to a dependency on react-native-maps. +- In the location data section of a note, an error displaying "NaN" may appear. +- Scroller on add note and edit note sometimes do not work on IOS +- The notes orientation on map page for android is off centered. +- Styling of the screens using [tamagui](https://tamagui.dev/) + +## Get Involved + +Overview of contribution and participation information, [contributors guide](https://github.com/oss-slu/lrda_mobile/blob/main/README.md) diff --git a/docs/project_wheres_religion_mobile/architecture.png b/docs/project_wheres_religion_mobile/architecture.png new file mode 100644 index 00000000..937aab0e Binary files /dev/null and b/docs/project_wheres_religion_mobile/architecture.png differ diff --git a/docs/shelter_volunteers/about.md b/docs/shelter_volunteers/about.md new file mode 100644 index 00000000..260e555e --- /dev/null +++ b/docs/shelter_volunteers/about.md @@ -0,0 +1,73 @@ +--- +id: about +title: Homeless Shelter Volunteer Scheduling Application +custom_edit_url: null +--- + + + +## Overview + +Homeless shelters rely on volunteers' help. When inclement weather strikes, homeless shelters get filled with people that need a place to stay, and volunteers' help becomes even more important. There are many people willing to volunteer, but knowing which shelter lacks help is a challenge. The purpose of this application is to simplify the process of scheduling work shifts for volunteers, and to give homeless shelters visibility into their upcoming staffing. The application allows volunteers to select shelters and times when they want to work, see which shelters (and which times) urgently need help, and cancel/reschedule their shifts. The application will also allow shelter staff to see who is scheduled to help at their shelter on different dates and different times, and issue a 'call for help' when help is needed urgently. + +### Information + +- **Source Code:** +- **Client** Tim Huffman (House Everyone StL) +- **External Mentors** Women in Technology Group (WWT), GetHelp +- **Current Tech Lead:** Kate Holdener [GitHub](https://github.com/kate-holdener) [LinkedIn](https://www.linkedin.com/in/kate-holdener-ba032a3/) +- **Developers:** + - [Abhilash Kotha](https://github.com/AbhilashKotha) + - [Logan Wyas](https://github.com/loganwyas) + - [Saiteja Gollapalli](https://github.com/Sai9797) +- **Start Date:** August, 2023 +- **Adoption Date:** August, 2023 +- **Technologies Used:** + - React + - Flask + - MongoDB + - pytest, pylint +- **Type:** Web Application +- **License:** [MIT](https://opensource.org/license/mit) + +## Users + +The software will be deployed as a web application, and users will access the application through a web browswer. They will create an account, +sign in and navigate the user interface to: +* Schedule work shifts +* See upcoming work shifts (possibly cancel some of them) +* See previous work shifts +* See the impact they have created (number of hours served, number of shelters helped, number of lives touched). + +## Technical Information + +The application is integraed with [GetHelp](https://gethelp.com/) API, for retrieving shelter information and user authentication. +Integrating with GetHelp authentication API requires an API key. The development version of the application can be run in a 'bypass authentication' +mode, that will bypass GetHelp authentication API and allow anyone to run the code in a development environment. + + +## Software Architecture Overview + +We defie the context of our software system in the diagram below. Users (volunteers) and shelter staff will access the application through a web browser, and sign-in to their account with their own credentials. Our application relies on GetHelp system for shelter specific data and for authentication. +![Software Architecture Context Diagram](context.png) + +The details of the different containers within our system are shown in the picture below. The user interface of the application (the client side of our system) is written in React. The client side uses GetHelp API to locate nearby shelters. The client side of the application sends requests to sign in, save/retrieve user specific work shift data, and calculate the times when shelters need the most help to our server-side application. The server-side application communicates with the database to read/write user specific data. +![Software Architecture Container Diagram](container.png) + +## Development Priorities + +- Complete volunteer scheduling functionality +- Improve UI/UX +- Deploy application for user testing +- User testing +- Develop shelter staff dashboard +- Deploy application for general use + + +## Get Involved + + + +Developers joining the project should follow the instructions in the +[README](https://github.com/oss-slu/shelter_volunteers/blob/main/README.md) +file of the project repository to run the application in a development environment. diff --git a/docs/shelter_volunteers/container.png b/docs/shelter_volunteers/container.png new file mode 100644 index 00000000..8f755412 Binary files /dev/null and b/docs/shelter_volunteers/container.png differ diff --git a/docs/shelter_volunteers/container.puml b/docs/shelter_volunteers/container.puml new file mode 100644 index 00000000..a163c79c --- /dev/null +++ b/docs/shelter_volunteers/container.puml @@ -0,0 +1,27 @@ +@startuml +!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml +!define DEVICONS https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/devicons +!define FONTAWESOME https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/font-awesome-5 + +!include DEVICONS/react.puml +!include DEVICONS/python.puml +!include DEVICONS/mongodb.puml +!include FONTAWESOME/users.puml +LAYOUT_WITH_LEGEND() + +Person(Volunteer, "Volunteers", "Shelter volunteers", $sprite="users") +Person(ShelterStaff, "Shelter Staff", "Shelter staff") +Boundary(b1, "Our System"){ + Container(schedulingAppClient, "Application User Interface", "React", $sprite="react") + Container(schedulingAppServer, "Server-side application", "Flask", $sprite="python") + ContainerDb(schedulingData, "Scheduled Shifts", "MongoDB", $sprite="mongodb") +} +System_Ext(getHelp, "GetHelp Platform") + +Rel(Volunteer, schedulingAppClient, "Use", "Web Browswer") +Rel(ShelterStaff, schedulingAppClient, "Uses", "Web Browser") +Rel(schedulingAppClient, getHelp, "Find nearby shelters", "HTTPS") +Rel(schedulingAppClient, schedulingAppServer, "Sends/requests scheduling", "HTTPS") +Rel(schedulingAppServer, getHelp, "Requests shelter data, verifies authentication", "HTTPS") +Rel(schedulingAppServer, schedulingData, "Reads/Writes") +@enduml diff --git a/docs/shelter_volunteers/context.png b/docs/shelter_volunteers/context.png new file mode 100644 index 00000000..b5ef160b Binary files /dev/null and b/docs/shelter_volunteers/context.png differ diff --git a/docs/shelter_volunteers/context.puml b/docs/shelter_volunteers/context.puml new file mode 100644 index 00000000..4158391e --- /dev/null +++ b/docs/shelter_volunteers/context.puml @@ -0,0 +1,17 @@ +@startuml +!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml +!define FONTAWESOME https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/font-awesome-5 +!include FONTAWESOME/users.puml +LAYOUT_WITH_LEGEND() + +Person(Volunteer, "Volunteers", "Shelter volunteer", $sprite="users") +Person(ShelterStaff, "Shelter Staff", "Shelter staff") +Boundary(b1, "Our System"){ +System(schedulingApp, "Volunteer Scheduling Application", "Web Application") +} +System_Ext(getHelp, "GetHelp Platform") + +Rel(Volunteer, schedulingApp, "Uses", "Web Browswer") +Rel(ShelterStaff, schedulingApp, "Uses", "Web Browser") +Rel(schedulingApp, getHelp, "Requests data", "HTTPS") +@enduml