Giter Club home page Giter Club logo

openboard's Introduction

Openboard

An open source version of Switchboard.

Join us first and third Wednesday evenings for sprint wrap & plan, and each Tuesday evening for check-in. EUG-Go

*We are based in the Pacific Timezone, but all are welcome

Overview

  • The Front End is written in Elm
    • Produces assets in the form of JavaScript artifacts
  • The Back End is written in Go
    • Produces an executable (*nix/Win) managing multiple servers
      • gRPC API server component
      • JSON/HTTP API server component
      • Front end asset server component

Community

openboard's People

Stargazers

 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

openboard's Issues

Remove .gitignore from front dir

The current front .gitignore contains values which should all be ignored from a global git configuration. Is it OK for me to drop it from the cleaned up branches I'm making?

Feature: search previous posts and clone

Desired Behavior

it's great to find previous posts for archival purposes and to clone new posts.

Suggested Solution(s)

allow for a search filter for "my posts" and "current vs past" and then keywords. when I find a post, it would be nice to be able to clone it for a new post.

Screenshot(s) If Applicable

Additional Notes

Wire up http gateway

Once the grpc server has any implementation running, the HTTP server can be setup using grpc gateway.

Bug: UserService user table altmail column should not have to be unique

Expected Behavior

Adding a user with a unique email and username, but having no altmail, will add a new user.

Actual Behavior

The previous user also without altmail will be overridden.

Steps To Reproduce The Problem

  1. create a new user with no altmail
  2. see that the number of rows is the same, indicating a different user was overridden

Additional Notes

Does username also have to be unique?

Change ID types in user.proto file to be strings and user table ID types to be varchar(26)

The ID types in the user service are different types and require multiple type conversions. Ensure all the ID types are strings and user table ID types to be varchar(255).

  • msgs/proto/user.proto requires IDs to be uint32
  • back/internal/usersvc/internal/userdb/qryuser.go accepts IDs that are of type string

Once the types are string/varchar, then update the responses to return the UIDs instead of hard-coded integers.

Use Elm CSS

As in #4, but avoid the bad history.
@nqthqn Are you able to create another PR using the current code?

Gain contributors by creating special issues for MozSprint

Mozsprint is happing for the rest of May. To gain some visibility it would be great to have some issues labeled with "help wanted", "good first issue", "mozsprint" and "openeugene".

Purpose
To help local open source projects in Eugene, OR gain visibility and contributors from the greater open source community, and enabling local open source enthusiasts to find local projects for contribution.

Outcome
Local open source projects have worldwide visibility, clear paths to collaboration and have gained new collaborators.

Process

  • Add issues that are attractive to new collaborators by labeling them as "help wanted"
  • Create simple issues that inexperienced folks can tackle and label them as "good first issue"
  • Attract global contributors by and labeling issues with "mozsprint"
  • Attract local contributors by and labeling issues with "openeugene"

feel free to start a conversation in the comments below! 🎉

Separate out basic message types from response types

Currently, there are the message types "UserResp" and "UsersResp". The "UsersResp" has a collection/repeated field called "Items" that is of type "UserResp". For consistency, please create a "User" type that is used as the type in the "Items" field. Similarly, "UserResp" should be updated to have a field called "Item" that is of type "User".

Start service: Posts

This is a working issue that tracks starting a service for new Posts, aka "Asks" and "Offers"
Data Structure:

mini-Services?

Roadmap

Share and find local opportunity.

We're constructing an open source “Switchboard” alternative so that community needs can be easily communicated publicly.

Milestones

Basic milestones will tag relevant issues and have a related "tracking" issue. Tracking issues should be named "Milestone: {milestone_name}" and be tagged with "org".

Epic milestones should be named "Epic: {title}". Release milestones should be named "Release: v{N.N.N}". Epics and Releases will tag milestone tracking issues only.

add repo topic open-eugene

we are starting to track repos with the topic open-eugene to help folks find them. you can set a topic on the repo main page if you are an owner.

feature coverage for Stewards (Moderators, Admins)

Stewards have additional options.

  • members
    • directory
    • interaction
    • invites
    • members
    • contituant files
  • insights
    • overview
    • users
    • growth
    • content
    • goals
  • outreach
    • campaigns
    • digest
    • features
    • settings
  • oversight
    • Flags

image

image

image

image

Add a Code of Conduct

every great project needs a code of conduct.
pull one from another open project from mozilla or a project you like.

Change ID types in post.proto file to be strings and post table id types to be varchar(26)

The ID types in the Post service are different types and require multiple type conversions. Ensure all the ID types are strings. Also ensure that all the post table ID columns are varchar(255).

  • msgs/proto/posts.proto requires IDs to be uint32
  • back/internal/postsvc/internal/postdb/qrypost.go accepts IDs that are of type string

Once the types are string/varchar, then update the responses to return the UIDs instead of hard-coded integers.

back: link roles to users in User Service

RoleIDs are not stored in the user table, nor is there a joint table that links user IDs and roleIDs. Consider these as well as other alternatives for linking users and roles.

Organize and refine documentation

  • Correct/update the root readme
  • Correct/update the back readme
  • Correct/update the front readme
  • Verify the license
  • Verify the purpose and content/implementation of extra docs like contributors
    • Contributors
    • Authors
    • Code of Conduct
  • Improve this list

Start integration test client

For now, we will assume devs have a running instance of openbsrv when running the test client...

  • Generate gRPC client
    • Main func should be located in a file such as back/tests/cmd/{test_app_name}/main.go
    • Service-specific logic should be located in a file such as back/tests/cmd/{test_app_name}/user.go
    • Tests should simply and thoroughly exercise the server
    • Use flag to set the rpc port
  • Start Bash script as back/tests/{test_app_name} (Same name as the tests/cmd subdir name)
    • Call go run on whatever needs to be targeted
      • Ensure the path to target works regardless of how the script is called (e.g. pushd into the dir containing the main.go file before running - hint: use something like dirname ${0})
      • Handle and pass "port" argument as flag to the "go run" process
    • Ensure the exit code of the bash script reflects the exit code of the called test (e.g. store go run exit code to var and end the script with something like exit ${exitCode} - hint: predeclare "exitCode" as a local var local exitCode = 0 at the top of the function scope)

Address (initial) ramifications of GDPR and CCPA

AC

  • Research and understand the general ramifications of privacy protection laws
  • For now, disclaim expectations to safely postpone thorough handling
  • Clarify lack of warranty/guarantees and create issue to establish T&Cs

Add a Contributor doc

If you're stumped, here are some good examples of contribution guidelines:

The Atom editor contribution guidelines.
The Ruby on Rails contribution guidelines.
The Open Government contribution guidelines.

Add back docs

Start with a minimum of package readmes, essential package docs, command readme, and general command docs.

Design Mockups

Checkout these mock ups and open up an issue to claim a piece of UI!
Openboard.pdf

  • Home
  • Login
  • Sign up
  • Reset Password
  • Confirmation Screen
  • Edit Account
  • New Ask/offer (post) @mckelveygreg
  • Ask/offer (post)

update the readme with a quick getting started checklist

for folks who don't know how to build Elm, it would be handy to have some steps in the repo to get up and running quickly. see https://github.com/EugTech/OpenEugeneFestivalWeb for an example.

OpenEugeneFestivalWeb

This is an attempt at utilizing Gatsby, a React.js static site generator.

This site will be following the layout of [mozillafestival.org] and design styles from the Gatsby Get up and Running Tutorial

Getting Started

To get started, clone and...

npm install
npm gatsby develop

Deploy

The site is hosted by Github Pages at https://eugtech.github.io/OpenEugeneFestivalWeb/

The gh-pages package is installed, so to deploy new changes, simply:

npm run deploy

Add limit and lapse to FndPost queries

Currently, in qrypots.go, there is no requirement to include limit and lapse in the FndPost query. Update the query to require the two parameters in order to prevent data overload when querying for a lot of posts.

Restart repo due to bloat

The repo history includes a build artifact from the first commit. I suggest that the repo be restarted to avoid megs of bloat. If the artifact had been committed in isolation, we might be able to cherry-pick our way to a clean history, but I don't think a clean solution is available.

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.