Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Discussion: BACKEND technologies #2

Closed
miggs125 opened this issue Oct 28, 2019 · 10 comments
Closed

Discussion: BACKEND technologies #2

miggs125 opened this issue Oct 28, 2019 · 10 comments
Labels

Comments

@miggs125
Copy link
Contributor

Part of the MVP features is to determine what technologies to use. This is a discussion on what technologies to use for the backend. We should be able to create a poll so everyone can voice their opinion.

@humphd
Copy link
Contributor

humphd commented Oct 28, 2019

Backend needs to be "node" with whatever set of deps people need. At this stage (MVP), I'd avoid adding a lot of other services until we need them (e.g., db).

@l1qu1dated
Copy link
Contributor

Should we use some kind of framework like Express or node would be enough?

@jerryshueh
Copy link
Contributor

jerryshueh commented Oct 29, 2019

I'd suggest that we get some sort of a baseline going before we start seeking higher level technologies. Like we discussed in class, a simple system that produces static HTML pages based on feed data is a good starting point. Looking through npm, there are a number of existing technologies that can help us get started.

For example, when I think of data manipulation in node, I immediately default to JSON. Some light digging lead me to feedparser. We can use something like this to produce Javascript objects from the feed streams, and pull specific attributes from those objects to render a basic HTML page. Even plaintext would be fine... just get something on the screen. Our "backend", at least for now, can just be some cached JSON files, and perhaps a text file with the list of feed URLs we want to grab content from (the complete list from the wiki might be a bit too much to start with). From here we can start thinking about configurations, such as minimal wait time, cache limits, or the feed properties we want to cache. After we get a feel for grabbing, parsing, and storing feed data in the node environment, we can discuss what sort of frameworks we can use to make it more robust. The URL file might evolve into some sort of API that serves up user-submitted feeds rather than parsing everything from a giant aggregate text file.

What does everyone think? I'll have to do a bit more research on RSS/Atom parsers in node, but that's at least one bit we won't have to code from scratch - there are a bunch out there that already exist.

@manekenpix
Copy link
Member

manekenpix commented Oct 29, 2019

I'm with @jerryshueh, let's start with something simple, maybe using http, and dotenv for simple config files. Also, it'd be interesting to start adding labels so we can tag issues and PRs as mentioned here, and we could even use the wiki to add documentation (technologies/modules/libraries we want to use, versions...). I think right now we don't have access to the wiki and can't add labels, maybe @humphd can help us with that.

@Silvyre
Copy link
Contributor

Silvyre commented Oct 30, 2019

All for labels. We could also make use of GitHub's project management functionalities, such assigning Milestones to MVP features (which can function to label/categorize Issues, as well).

@sukhbeersingh
Copy link
Contributor

Since the discussions seems to be closing in at Node, maybe we can put in a basic server file. I can do that, if agreeable. Another thing to consider is which package manager we want to use. We're all familiar with npm, but from most of the projects I encountered in the last month, yarn is pretty popular too.

@manekenpix
Copy link
Member

Before writing anything, I think it'd be a good idea to make a decision on these:

  • npm vs yarn
  • node 12.13 LTS vs node 13.01 current
  • Linter (to avoid 60 different styles of code)

@humphd
Copy link
Contributor

humphd commented Oct 30, 2019

Some great ideas in here. Let's discuss more on Thursday and break this down into separate bugs. Too much happening in this one issue that isn't actionable.

My thoughts on the above:

  • yarn isn't well maintained these days, I'd just use npm
  • using something like express is great, since most students will have encountered it
  • building out a node REST api that produces JSON for front-end(s) sounds logical
  • using existing packages like dotenv, feedparser, etc. sounds good to me
  • node version, I'd suggest only using LTS in prod, so let's use that?
  • Linter, absolutely! Probably more than one.

There's a whole bunch of separate issues here that can be filed. Great to see so many of you jumping in with ideas!

@UltimaBGD
Copy link
Contributor

Jumping onto the labels discussion, it would be best to start that early, and I think that could be filed under another issue itself. While it may not be direct work on the project, keeping the list of issues easily indexible will be fairly crucial for an active team of 50+ people in terms of organization, and I think should be high priority before we really start going.

@humphd
Copy link
Contributor

humphd commented Nov 11, 2019

I think this is well in hand now in follow up issues/prs that address specifics of the above. Closing in favour of what's happening there.

@humphd humphd closed this as completed Nov 11, 2019
eekbatani added a commit to eekbatani/telescope that referenced this issue Nov 11, 2019
# This is the 1st commit message:

reset eslint rules, refactored code to fit

# This is the commit message Seneca-CDOT#2:

Added jQuery to eslint
RyanWils pushed a commit to RyanWils/telescope that referenced this issue Nov 12, 2019
neilong31 added a commit to neilong31/telescope that referenced this issue Nov 15, 2019
neilong31 added a commit to neilong31/telescope that referenced this issue Nov 15, 2019
neilong31 added a commit to neilong31/telescope that referenced this issue Nov 15, 2019
Fixed some errors found in email tester

Fixed Linting errors

Fixed linting errors Seneca-CDOT#2

Fixed linting errors Seneca-CDOT#3

Fixed build errors

Fixed tested to ensure resolve is correct
cagomezr added a commit that referenced this issue Nov 15, 2019
neilong31 added a commit to neilong31/telescope that referenced this issue Nov 15, 2019
Fixed some errors found in email tester

Fixed Linting errors

Fixed linting errors Seneca-CDOT#2

Fixed linting errors Seneca-CDOT#3

Fixed build errors

Fixed tested to ensure resolve is correct
Grommers00 added a commit that referenced this issue Mar 31, 2020
Fix #883 - Add a user - ready for review. Round #2.
manekenpix pushed a commit that referenced this issue Oct 12, 2020
TueeNguyen referenced this issue in TueeNguyen/telescope Jan 28, 2022
TueeNguyen referenced this issue in TueeNguyen/telescope Jan 28, 2022
- Update redis.md
- Update #2 in redis.md
aserputov pushed a commit to aserputov/Telescope that referenced this issue Mar 15, 2022
# This is the 1st commit message:

Set up ESLint for image service

# The commit message Seneca-CDOT#2 will be skipped:

# Set up ESLint for image service
aserputov pushed a commit to aserputov/Telescope that referenced this issue Mar 17, 2022
# This is the 1st commit message:

Set up ESLint for parser service

# The commit message Seneca-CDOT#2 will be skipped:

# Fix typo in posts_url with docker-build-and-push.yml

# The commit message Seneca-CDOT#3 will be skipped:

# 2.8.2

# The commit message Seneca-CDOT#4 will be skipped:

# [satellite]: use Satellite from npm registry (Seneca-CDOT#3220)
#
# * Use Satellite from npm registry

# The commit message Seneca-CDOT#5 will be skipped:

# Set up buildx before running containers in e2e tests for cachine
aserputov pushed a commit to aserputov/Telescope that referenced this issue Mar 17, 2022
# This is the 1st commit message:

Set up ESLint for parser service

# The commit message Seneca-CDOT#2 will be skipped:

# Fix typo in posts_url with docker-build-and-push.yml

# The commit message Seneca-CDOT#3 will be skipped:

# 2.8.2

# The commit message Seneca-CDOT#4 will be skipped:

# [satellite]: use Satellite from npm registry (Seneca-CDOT#3220)
#
# * Use Satellite from npm registry

# The commit message Seneca-CDOT#5 will be skipped:

# Set up buildx before running containers in e2e tests for cachine
aserputov pushed a commit to aserputov/Telescope that referenced this issue Mar 17, 2022
# This is the 1st commit message:

Set up ESLint for parser service

# The commit message Seneca-CDOT#2 will be skipped:

# Fix typo in posts_url with docker-build-and-push.yml

# The commit message Seneca-CDOT#3 will be skipped:

# 2.8.2

# The commit message Seneca-CDOT#4 will be skipped:

# [satellite]: use Satellite from npm registry (Seneca-CDOT#3220)
#
# * Use Satellite from npm registry

# The commit message Seneca-CDOT#5 will be skipped:

# Set up buildx before running containers in e2e tests for cachine
aserputov pushed a commit to aserputov/Telescope that referenced this issue Mar 17, 2022
# This is the 1st commit message:

Set up ESLint for parser service

# The commit message Seneca-CDOT#2 will be skipped:

# Fix typo in posts_url with docker-build-and-push.yml

# The commit message Seneca-CDOT#3 will be skipped:

# 2.8.2

# The commit message Seneca-CDOT#4 will be skipped:

# [satellite]: use Satellite from npm registry (Seneca-CDOT#3220)
#
# * Use Satellite from npm registry

# The commit message Seneca-CDOT#5 will be skipped:

# Set up buildx before running containers in e2e tests for cachine
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

9 participants