public class
ComputerScience
{
public static void main (String[] args) {
}
String about =
"This class is taught by Mrs. Taricco. We learn web design and create our own websites (this), learn object-oriented programming in Java, and eventually create a social-good app. For the students who have already completed AP Computer Science A, such as me, we get to work on independent CS projects as well." ;
"This class is taught by Mrs. Taricco. We learn web design and create our own websites (this), learn object-oriented programming in Java, and eventually create a social-good app. For the students who have already completed AP Computer Science A, such as me, we get to work on independent CS projects as well." ;
public static App Censeo () {
}
String problem =
" Youth voices are left out of the equation when it comes to discussing societal and political issues. Elections, a primary form of civic engagement, are often limited to those who are 18 years old or older, leaving those on the cusp of adulthood unheard and frustrated about their inability to participate in such a crucial form of democratic expression. The decreasing rates of civic engagement and low youth voter turnout are problematic as the democratic process hinges on the participation of younger generations. " ;
" Youth voices are left out of the equation when it comes to discussing societal and political issues. Elections, a primary form of civic engagement, are often limited to those who are 18 years old or older, leaving those on the cusp of adulthood unheard and frustrated about their inability to participate in such a crucial form of democratic expression. The decreasing rates of civic engagement and low youth voter turnout are problematic as the democratic process hinges on the participation of younger generations. " ;
String targetAudience =
" The target audience for Censeo is teenagers 13-18, although young adults may also participate. This audience was selected with hopes to inspire and promote the voices of younger generations in social and civic matters. " ;
" The target audience for Censeo is teenagers 13-18, although young adults may also participate. This audience was selected with hopes to inspire and promote the voices of younger generations in social and civic matters. " ;
String solution =
"
"
My Apps for Good team consisted of Megan Ashun, Gustavo Rodriguez, and I. We make use of the engaging nature of social media apps to create a platform that allows teenagers to learn and express their opinions on political issues, as well as see the opinions of others.
Our minimum viable product, consisting of three core features, is outlined below:
"
;Our minimum viable product, consisting of three core features, is outlined below:
- There are politically-relevant polls presented to the user. Poll data is processed from pulling recent laws from the Congress API. Content may also be manually entered using ballot questions. These polls are stored in the Firestore database for the frontend to pull. On the user end, random polls are be queried and displayed through a TikTok-like user interface.
- Poll data is collected. After the user first creates an account through Google OAuth, they are directed to the settings page to enter demographic information including birthday, gender, race, and location. This info is used to provide more detailed data on poll results. When a user votes on a poll, their vote is stored with the poll document and recorded in the user document in the Firestore database.
- Poll data is aggregated and presented to the user. When a poll is closed, it can no longer be viewed from the polls page. Instead, on a separate TikTok-like user interface, users can view summary statistics on the poll results, such as overall sentiment and sentiment based on gender or age. These statistics are calculated from user data and the poll's votes in the app itself.
String process =
" Research. First, we researched the problem extensively to understand the severity and implications of a lack of youth civic engagement. We also looked into privacy laws to determine the lower limit of our target audience, 13. Simultaneously, we researched competitors, finding only polling companies that targeted those above 18, which indicated a solid niche for our app. Finally, we researched the technologies we would use to develop the app, first trying out .NET MAUI before switching to Flutter.
Design. Next, we designed the app, starting with wireframes and moving on to higher-fidelity designs. Most design happened on paper, which we found useful for quick iteration. We also carefully designed the database schema and the backend API by considering the app's target functionality as well as data efficiency.
Implementation. The app was implemented with the Flutter framework in the Dart language. We used Firebase for authentication and data storage (through Firestore), and ExpressJS for the backend. We also used the Congress API to pull recent laws for the polls. We used Git and GitHub for version control, and VSCode and Android Studio for development.The app was continuosly developed in parallel segments (e.g. database implementation and the poll display), with the team collaborating to merge these segments when ready.
Testing. The app was thoroughly tested with over 72 test cases spanning all aspects of the app, including all pages in the frontend, authentication, data storage, and the backend. Although not all cases passed, we overall fulfilled our MVP and created a fully-functioning application that we are proud to present. " ;
" Research. First, we researched the problem extensively to understand the severity and implications of a lack of youth civic engagement. We also looked into privacy laws to determine the lower limit of our target audience, 13. Simultaneously, we researched competitors, finding only polling companies that targeted those above 18, which indicated a solid niche for our app. Finally, we researched the technologies we would use to develop the app, first trying out .NET MAUI before switching to Flutter.
Design. Next, we designed the app, starting with wireframes and moving on to higher-fidelity designs. Most design happened on paper, which we found useful for quick iteration. We also carefully designed the database schema and the backend API by considering the app's target functionality as well as data efficiency.
Implementation. The app was implemented with the Flutter framework in the Dart language. We used Firebase for authentication and data storage (through Firestore), and ExpressJS for the backend. We also used the Congress API to pull recent laws for the polls. We used Git and GitHub for version control, and VSCode and Android Studio for development.The app was continuosly developed in parallel segments (e.g. database implementation and the poll display), with the team collaborating to merge these segments when ready.
Testing. The app was thoroughly tested with over 72 test cases spanning all aspects of the app, including all pages in the frontend, authentication, data storage, and the backend. Although not all cases passed, we overall fulfilled our MVP and created a fully-functioning application that we are proud to present. " ;
String appFair =
" The App Fair poster is included below. " ;
" The App Fair poster is included below. " ;
public static void SISO () {
}
String description =
"I’m currently working on Mass Academy Sign-In Sign-Out (SISO) with seniors David, Charles, and Tarun. This is a system for easier signing in and out, including a physical device and a web app with attendance information and options for administrators. My work includes designing an individual student view, familiarizing myself with the system overall, identifying and fixing bugs, and integrating a card reader system to replace the key fobs." ;
"I’m currently working on Mass Academy Sign-In Sign-Out (SISO) with seniors David, Charles, and Tarun. This is a system for easier signing in and out, including a physical device and a web app with attendance information and options for administrators. My work includes designing an individual student view, familiarizing myself with the system overall, identifying and fixing bugs, and integrating a card reader system to replace the key fobs." ;
public static void agram () {
}
String description =
"At the beginning of the year, we had some challenge problems to complete, one of which was Agram. This problem describes a two-player card game, with the goal being to code the dealer’s behavior according to the strategy defined. This was a fun problem to start off the year with. My code is below." ;
"At the beginning of the year, we had some challenge problems to complete, one of which was Agram. This problem describes a two-player card game, with the goal being to code the dealer’s behavior according to the strategy defined. This was a fun problem to start off the year with. My code is below." ;
}