Giter Club home page Giter Club logo

charter's Introduction

Due to costs and lack of interest, I’ve had to take down the Charter service.

If you’re interested in running your own copy, get in touch and I can send you the database backups.



An iOS client for the Swift mailing lists by @_matthewpalmer.



Details

How do I run the iOS app?

You can download it from the App Store or run it yourself:

  1. git clone https://github.com/matthewpalmer/Charter
  2. cd iOS/Charter
  3. pod install
  4. open Charter.xcworkspace
  5. Run the app! Everything should be good to go.

How do I run the backend?

Running the backend is a little more tedious because it involves importing a bunch of archival data from the lists.swift.org website. Check out the README in the /Backend directory.

Can I contribute?

Of course! We’d love to see contributions from everyone, especially people trying to scratch an itch they’ve found after using the app. If you come across anything you want to work on, open an issue and get started.

If you’re keen to contribute but don’t feel like coding, there’s a bunch of stuff that needs to be done. We’re always trying to

  • improve the visual design of the app
  • improve the app icon
  • improve App Store marketing—think copy writing for the description, gorgeous screenshots, and maybe even a product video preview
  • translation and localisation (!!!)
  • improve the speed of the server or make the database more efficient
  • make suggestions, report bugs, ask questions, help people who ask questions

If you do any of the above, remember to open a PR to add yourself to the CONTRIBUTORS file! After a few contributions, we’ll give you push access so you can review and merge pull requests.

Contributors

My personal thanks to everyone who has contributed to Charter!

  • haawa799 — improved access to the App Store listing from the README
  • FranciscoAmado — added localizations for Portugese and Spanish
  • denissezavala — added refreshing threads when the view loads and improved the threads list’s design
  • fortinmike — added the previous and next buttons to the conversation view

charter's People

Contributors

denissezavala avatar fortinmike avatar franciscoamado avatar haawa799 avatar matthewpalmer avatar maxdesiatov 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  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  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  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  avatar

charter's Issues

Stopped updating?

It seems the app doesn't display any message that was sent after June 8th.

I tried uninstalling the reinstalling the app but the issue didn't go away. Maybe there's something wrong with the app's backend?

Question about contribution

I'm sorry but I have a question if I want to contribute to this repository, which branch do I need to track or modify.

I've tried the develop branch, but the app crashed when I click any of the Mailing Lists item, the cause seems to be the realm, do I need to run the backend myself or do I need to do some additional configuration?

I am interested in this repository, and I want to contribute. It will be great if you can give me some additional information. Thanks.

1.1 release

  • cut 1.1 release branch
  • update metadata with fastlane
  • test 1.0 app store -> 1.1 migration
  • write release notes
  • submit for app review

Thank contributors in release notes and README

I want to cat the contents of contributors file onto the end of the readme, and make sure the contents of the contributors file goes out in the release notes for that version.

Todo

  • add contributors so far to the contributors file
  • write a script to do this
  • copy Moya's contributing guidelines/process (i.e. mention in readme that I'll give push access plus community guidelines too)

Fix conversation threading issues

Conversations are not properly threaded if the In-Reply-To header isn't set. This should be fixed as part of #2.

  • Add descendants field to the email document

Monorepo?

Prefer the idea of a monorepo over 5 different repos for different modules and stuff, would make contributing a lot easier.

Things I need to think about

  • how to deploy the node server?
  • multiple cocoapods within a repo?
  • is it weird to have the app and the server next to eachother in the directory? [don't think so as long as they stay separated]

CollapsibleTextView repo not found

I try to run pod install but get this error:

!] Error installing CollapsibleTextView
[!] /usr/bin/git clone https://github.com/matthewpalmer/CollapsibleTextView /var/folders/hk/kjr928bd31g6r9k1qc38y6r00000gn/T/d20160220-4444-1xho9ra
Cloning into '/var/folders/hk/kjr928bd31g6r9k1qc38y6r00000gn/T/d20160220-4444-1xho9ra'...
remote: Repository not found.
fatal: repository 'https://github.com/matthewpalmer/CollapsibleTextView/' not found

[Undecided] Move away from redux/reswift architecture

Considering moving away from redux/reswift. Reasons:

  • not everyone is familiar with it, so might increase barrier to contribution
  • I don't want to couple my view controllers to the store, but I'd also rather not create a controller for every piece of state
  • the cool thing about react + redux is that you can just pass whatever props without worrying about re-rendering. With UIKit we're going to need to do comparisons of next/previous state to determine when to re-render. I think this would introduce state (esp. w/o a pure render mixin)
  • working around UIKit introduces certain workarounds/hacks, e.g. we'd have to re-implement the "Back" button for UINavigationController/Bar to propagate the necessary state change.

I'm definitely convinced that reswift/redux is a great way to write apps, and having a single state receptacle is the way we'll be doing it in the future, but right now for this project I'm not convinced it's a perfect fit. Still thinking it over.

Improve inline quote UI

Currently inline quotes just throw up a fixed-size popover. It'd be cool to size this approximate to the content being displayed.

Also, this UI is pretty bad on iPad

Add archive URLs

  • Add the ability to link from a email in the app to the email on the website.
  • Add to backend/database
  • Add to app

Miscellaneous smaller tasks

  • think about whether the data sources to the various view controllers should be turned into protocols and injected (at this stage, I'm thinking yes, but it's maybe a little tricky because of the view lifecycle)
  • unit tests for thread detail data source
  • add tests for formatContent on the EmailFormatter class
  • remove various retain cycles that I've introduced
  • go through TODOs littered throughout the codebase and open issues or fix

Switch to Storyboards

One of the things I noticed when watching @orta’s tvOS app code review video was how helpful it was to have a storyboard to look at when first seeing the codebase. I want new contributors to this app to be able to get a quick overview of the app flow, and a storyboard is the best way to do that. While it might not be 100% the best technical choice, the value it'll add to the community is too much to ignore.

Add the ability to star a conversation

This won't be ready for a while.

Need to figure out precisely what a star means:

  • appears at the top of the threads list?
  • receive push notifications?
  • adds visual identifier next to message?
  • more like a "read later" thing? can you view a list of all starred convos? do we need user accounts?
  • do we have star counts for all convos? can people order threads by number of stars?

Add backend

Add a backend for faster list refresh

  • add mail listener
  • parse emails
  • present emails as REST API
  • auth for REST API
  • partition emails into threads if they have no references or in-reply-to. also handle the Dave Abrahams case where he doesn't set in-reply-to. Hmm... not sure what to do here yet, but definitely need to be better at handling this so that we get proper threading all the time. Also, provide a /threads endpoint for a list that just has the root emails for each thread

New feature

  • add archive URL so we can link to the posts on the swift lists website

Current thinking for the archive URL approach:

Compute a new message's archive URL from the previous message in the db. Every x minutes check that the most recent document's archive URL matches the page it points to. If it matches, we're ok, and continue. If it does not match, find the message that the page references, set the archive URL for that page, and then recompute all archive URLs for messages that come after that message (by date).

This won't ensure 100% accuracy, but bounds inaccuracy within hour-long periods and minimises the number of requests we have to make against the server

  • Add tests for backend
  • Clean up logging
  • Clean up db instantiation
  • Open source the backend (open sourcing might take a little while to get all the config stuff set up... also, #7 ?)

Add license

99% chance it'll be MIT, just need to think about it for a sec

Localisation branch

Hi,
I'm sorry to bother but I took the liberty to localize your app to Portuguese and Spanish. My problem is that I created a branch for it, directly from your repository instead of forking first.
Only noticed it when was pushing the commit.

Are you interested in localizing it as you say in the Readme?
If so, any advice on how to handle it now or should I just create the PR?

Add labels in table view

People often put [Idea] and [Review] and stuff in the subject line for their messages. It'd be cool to turn these into coloured labels (c/f github issue labels) on the message, and maybe eventually search for them

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.