net-art-uchicago / cta-file-sharing

a collaborative artware project by Media Art and Design students at the University of Chicago.
GNU General Public License v3.0
2 stars 15 forks source link

Roles / Tasks #2

Closed nbriz closed 1 year ago

nbriz commented 1 year ago

This project is definitely going to involve both "frontend" and "backend" work. The backend will be pure JavaScript while the fronted will involve a combination of HTML, CSS and JavaScript. Think about what part of the project you're most intersted in working on and leave a comment below (otherwise I'll assign you to a specific area and set of tasks in class next week)

Some of the backend tasks might include:

Some of the frontend tasks might include:

ashantiowusu-brafi commented 1 year ago

I am interested in backend. I have experience with MySQL and am eager to learn how to implement a database into a web app successfully. I think the relationship between the API and the web app is an important aspect of security that I am hoping to gather more thoughts on. I was using Heroku to host a web application. Integrating ClearDB cloud hosting to build a database for a project. I got stuck on how to create a submission form that stored users' files in this cloud-hosted Database. The issue was with the various file types and trying to write code for specific sizes and limit users on the number of times they could upload things/photos/audio/video. Simultaneously I was coding the front-end submission form and frankly was overworked and frustrated with the decisions I needed to make on the visual side. Hoping to work that out here :D

nbriz commented 1 year ago

great @ashantiowusu-brafi! we'll definitely need to store data, but exactly how we do it will depend on the details. once we've further defined the concept we'll be able to define the technical tasks in more detail. as far as the "database" is concerned, we may need to implement a conventional database (like MySQL or MonoDB), but we might also be able to get away w/something a little more DIY/minimal (like working directly w/the file system && saving text files, .json, .csv, etc), or we might decide something in the middle like SQLite is more appropriate.

As for deploying our app, that's another decision we'll need to make when we near the end of the quarter, Heroku might work out great for us, that said, sometimes services like that abstract the process in a way that's practical in practice, but obscures our understanding of the systems. given our learning goals, we may take another approach that helps us better understand the open + decentralized nature of the platform we're developing for (the World Wide Web) and the infrastructure it operates on (the Internet).

akhaiat2 commented 1 year ago

I would say that I have more skills that pertain to frontend work (from previous experience) but I would love to focus on backend dev to build new skills. In terms of backend work, I especially want to be working on the requests from 3rd party rest APIs (such as CTA bus API) as well as the database aspect (I have used Firebase in the past, but open to anything really). I can also help others with frontend work if needed!

ajchu28 commented 1 year ago

I'd be interested in working on the frontend side of things! I recently did a project which involved working with Mapbox GL JS.

andrewscottcohen commented 1 year ago

I have more experience on frontend and would be happy to help there - but I would also really love to learn more about API requests and building out the database!

aureliejr commented 1 year ago

I have more experience with front end, but not a huge amount, and I'd like to learn more about backend programming, so I'd be happy with either

cal-ledoux commented 1 year ago

I am happy to work with either, but I am particularly interested in frontend logic and map design if that role is still available! If not, I am super curious about all aspects!

azarias22 commented 1 year ago

Even though I have worked with frontend more than backend, I will be happy to work on either. For frontend I can work on writing the frontend logic for any of the UIs. And for backend, I can work on creating REST API endpoints to POST and GET data.

bermanisaac commented 1 year ago

Just some musings on more granular tasks that we'll need to include in the project (not sorted particularly well):

file submit page/text writing page (frontend, text writing "app") file adding protocol (HTTP POST request?) file repository (potentially just a JSON file and manipulate it in memory?) bus GPS location -- chicago API access user GPS location -- browser API access files live on buses? data structure to track movement of the files function to determine "location" of files based on which bus route they're on and where the bus is

identify which bus a person is on (frontend page) identify which bus a person is on (backend function) check if user is even on a bus route? can the user use the app at all if they're off-route?

wait -> create detect if user is moving or not (browser GPS/gyro/accelerometer? access)

move -> consume detect if user is moving (browser GPS...) feed them a file (frontend file viewing) feed them a file (backend decide which file to provide)

synchronous data? detecting how many current active users of the app (backend) active current users on a certain bus / on a certain route (backend) affect the frontend based on current activity / realtime data (frontend)

bermanisaac commented 1 year ago

Server/Client Communication Diagram:

REST API for asynchronous communcation: Server sends:

Client sends:

start moving Client sends:

Server sends:

Question: Does any of the bus tracking logic lie on the frontend? Or does the backend need to constantly communicate about bus location vs user location to keep tracking accurate

Realtime data communication would happen over a dedicated socket

nbriz commented 1 year ago

Front-End

Back-End REST API