Coder Social home page Coder Social logo

app-wiki's People

Contributors

rabbitwerks avatar snordmann avatar w3cj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

app-wiki's Issues

Technologies and Frameworks: Backend

Hello together,

This issue is to hold a discussion about which frameworks to use.
The scope of this issue is to decide on how the backend works.


Database

  • SQL
    • PostgreSQL
    • MariaDB
  • NoSQL
    • MongoDB
    • ???
  • Graph-based
    • neo4j (maybe even use graphql?)
    • ???
  • Firebase

Webserver

  • Express
  • Koa
  • restify
  • restana
  • ???

Testing

  • Testing structure
    • mocha
    • Jasmine
    • Jest
  • Assertion library
    • Jasmine
    • Jest
    • chai
  • Code coverage
    • Istanbul
    • Jest
    • Blanket
  • Other libraries
    • supertest

Deployment

  • Where to deploy to?
    • Platform-as-a-Service
      • AKS (Azure)
      • EKS (AWS)
      • GKE (Google)
      • heroku
  • How to deploy?
    • Jenkins
    • Circle CI
    • Travis CI
  • Challenges
    • Backup and restore
    • Log Management
      • Rotation
      • Aggregation
    • Monitoring
    • Scalablity & Cost Optimization
    • Maintenance

Feel free to comment on this issue and start a discussion on which framework / program to use.
If I missed any app just leave a comment, I will add it as soon as possible.

Cheers, Semjon

Technologies and Frameworks: General project features

Hello together,

This issue is to hold a discussion about which frameworks to use.
The scope of this issue is to decide on features all projects (currently backend and mobile app) should have.


Versioning and Release note management

We will be using Semantic Versioning for all projects.

Summary of Semantic Versioning:

Given a version number MAJOR.MINOR.PATCH, increment the:

  1. MAJOR version when you make incompatible API changes,
  2. MINOR version when you add functionality in a backwards-compatible manner, and
  3. PATCH version when you make backwards-compatible bug fixes.

Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

As all npm packages and modules use this system, so will we. For more information on Semantic Versioning check out the specs.

There are several tools to automate and assist with a semver workflow. Al of the following tools can bump versions and create release notes more or less automated.

GitHub Releases

GitHub has this feature that allows you to tag specific commits to create a release. Whichever tool we decide on, all versions should be here too.

Using GitHub Releases without another tools consists of manually creating the tag and version string and after that uploading the build artifacts or other binary files.

Pro Con
No external tools necessary Completely manual
No changelog neccessary (although prefered)
Can be scripted (using POST requests)

git-semver

This works on either just a npm package.json file to get the current version and bump it, or it will look for a CHANGELOG.md file in the repository root. Using this tool one needs to manually run a script to bump the version and doing that decide, if this is just a patch, a minor or major release.

Pro Con
easy to get into need to release manually, not possible with CI
no need to keep a changelog (although prefered)

Reno

This is a release note management that is used in OpenStack. This framework can be dismissed easily, since it is far too complex for small projects and - far more important - it doe not work well with the Git Flow.

Pro Con
- does not work for our workflows

semantic-release

As last framework for release note and version management has the capability to create both without any manual configuration. If one merges to master this tool will run a job and determine which version to bump (path, micor, major) and the release notes that go with this version. It does this on tthe basis of all the commits. Using this tool we are constrained to use only commits according to the Angular Commit Message Conventions.

Pro Con
can create releases automatically Need to have a clean commit history

Last words about version management

Which ever tool we use, we will always publish to GitHub Releases, since many developers take this as the source of truth for the appication code and binaries. We could even add a changelog to every version on that platform.

So we need to think about how we will create a new version. Either we could do some things manual or completely automated. On the manual route it is possible to run a CI script when a git tag is created. Between manual and automated is the git-semver approach: Writing a CHANGELOG.md and running the script manually to bump a version. The completely automated way would be using semantic-release, but I don't like this very much because of the strict commit message guidelines. They will likely scare of first time contributors and add an overhead to the code review process.

Linting

As all projects will be written in ECMAScript ESLint will be used.

  • Configurations
    • AirBnB
    • Canonical
    • ESLint
    • prettier
    • Standard
    • others?
  • Things that ESLint can't find
    • Spread syntax
    • default parameter syntax
    • spelling mistakes
    • ???

Documentation

  • Should be publicly acessible
    • Self-hosted
      • Vuepress
      • GitBook
      • ???
    • GitHub Pages
    • GitHub Wiki
    • ???
  • for backend
    • swagger
  • for everything
    • JsDoc

Feel free to comment on this issue and start a discussion on which framework / program to use.
If I missed any app just leave a comment, I will add it as soon as possible.

Cheers, Semjon

Technologies and Frameworks: Testing

Greets all! I hope everyone had a great holiday!

I'm rearin to go so kick things off again, I am opening this discussion issues for conversing, comparing, and choosing our testing technologies.

I am unfortunately unable to offer any wisdom into this matter, although I'm eager to participate! I've heard some good things about using Jest for React based apps. Vue-native being react based, I feel Jest would be a good a fit. Past that logic, I got nothin.

Thoughts? Ideas? Quandrys? Concerns?

Documentation: update getting involved wiki

Issue Template

Please follow this template for opening new issues for any of the Coding Garden Community App repos. Before beginning, please check the open issues to see if the your issue already exists. If it does not, feel free to open a new issue by following the provided template and relevant resources


Area of Development

Please tell us what area of development this issue involves. Select all that apply.

  • Frontend
  • Backend
  • Testing

Type / Category

Please select the relevant option(s) that best describe this issue

  • Bug (non-breaking)
  • Bug (breaking)
  • Feature Request
  • UI/UX
    • Design
    • Interaction
    • Content
  • Support Issues
  • Documentation
    • Out of Date
    • Spelling/Grammar
  • Security Issue
    • High Risk
    • Medium Risk
    • Low Risk
  • Other

Device Info

OS (if applicable) App Version
N/A N/A

Description

Please describe the issue in detail including what is happening, what the effects are, the steps leading up to the issue, and any error messages encountered below.


In the Getting Involved Section under Frontend The technology is suggested as Vue-Native, but should be React-Native.

Proposed Solutions

If you have any proposed solutions or starting points towards this issue, enter the relevant information below.


Update the wiki under Getting Involved

Additional

Please include any screenshots or error messages with your new issue to help give context and example

Design: Wireframing tools

Hi everyone. Below is a list of wireframing tools for us to decide on.
I feel like webapps might be the best solution, so as to not exclude anyone by using platform specific tools.
Add any tools that I might have missed in the comments, and we can maybe pick out a few for a vote in the end.

Name/URL Platform Pricing
Adobe XD Windows & Mac Free to cheap
www.wireframe.cc Web app Free to cheap
www.uxpin.com Web app Pricy
www.fluidui.com Web app Kind of pricy
www.balsamiq.com Windows & Mac & web app Cheap
www.pidoco.com Web app Cheap
http://pencil.evolus.vn Windows, Mac and Linux Free & Open source
www.gliffy.com Web app Cheap
www.mockflow.com Web app Free to cheap
www.framebox.org Web app Free
www.hotgloo.com Web app Pricy
www.moqups.com Web app Free to cheap
https://www.figma.com/wireframe-tool/ Web app Free to pricy

Technologies and Frameworks: Frontend

Hello together,

This issue is to hold a discussion about which frameworks to use.
The scope of this issue is to decide on how the frontend (mobile app) works.


Native App Framework

  • React-Native
  • NativeScript
  • Vue-Native
  • Flutter
  • PWA
  • Ionic

Testing

To be quite honest, I have never written a mobile app before. I have no idea how to make itnegration or end-to-end tests with mobile apps. Does anyone know a framework for that?

Distribution

Here it is the same: I don't know how to get an app into the app store or if it could be automated in a CI/CD pipeline. We'll need to check how to do this.


Feel free to comment on this issue and start a discussion on which framework / program to use.
If I missed any app just leave a comment, I will add it as soon as possible.

Cheers, Semjon

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.