Giter VIP home page Giter VIP logo

datjournaal_v1's People

Watchers

 avatar  avatar  avatar

datjournaal_v1's Issues

Stats

As an logged in user I would like to be able to see statistics to find out, which posts are popular.
In order to accomplish that for each request a log entry in the database shall be made. This contains the IP Address (maybe a unique id or hash of the address), the time and what was requested.

webpack minified error after very first deployment

When datjournaal gets deployed the very first time, this happens:

Error: Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.
r()
application-2896a18bc1ae10ffd71fb461108cc17b.js:19
N<.createRouterObjects()
application-2896a18bc1ae10ffd71fb461108cc17b.js:19
bound ()
self-hosted
N<.componentWillMount()
application-2896a18bc1ae10ffd71fb461108cc17b.js:19
v.performInitialMount()
application-2896a18bc1ae10ffd71fb461108cc17b.js:17
v.mountComponent()
application-2896a18bc1ae10ffd71fb461108cc17b.js:17
a<.mountComponent()
application-2896a18bc1ae10ffd71fb461108cc17b.js:2
v.performInitialMount()
application-2896a18bc1ae10ffd71fb461108cc17b.js:17
v.mountComponent()
application-2896a18bc1ae10ffd71fb461108cc17b.js:17
a<.mountComponent()
application-2896a18bc1ae10ffd71fb461108cc17b.js:2
v.performInitialMount()
application-2896a18bc1ae10ffd71fb461108cc17b.js:17
v.mountComponent()
application-2896a18bc1ae10ffd71fb461108cc17b.js:17
a<.mountComponent()
application-2896a18bc1ae10ffd71fb461108cc17b.js:2
v.performInitialMount()
application-2896a18bc1ae10ffd71fb461108cc17b.js:17
v.mountComponent()
application-2896a18bc1ae10ffd71fb461108cc17b.js:17
a<.mountComponent()
application-2896a18bc1ae10ffd71fb461108cc17b.js:2
i()
application-2896a18bc1ae10ffd71fb461108cc17b.js:18
o<.perform()
application-2896a18bc1ae10ffd71fb461108cc17b.js:2
c()
application-2896a18bc1ae10ffd71fb461108cc17b.js:18
o<.perform()
application-2896a18bc1ae10ffd71fb461108cc17b.js:2
p.batchedUpdates()
application-2896a18bc1ae10ffd71fb461108cc17b.js:18
a()
application-2896a18bc1ae10ffd71fb461108cc17b.js:2
B._renderNewRootComponent()
application-2896a18bc1ae10ffd71fb461108cc17b.js:18
B._renderSubtreeIntoContainer()
application-2896a18bc1ae10ffd71fb461108cc17b.js:19
B.render()
application-2896a18bc1ae10ffd71fb461108cc17b.js:19
<anonymous>
application-2896a18bc1ae10ffd71fb461108cc17b.js:1
t()
application-2896a18bc1ae10ffd71fb461108cc17b.js:1
<anonymous>
application-2896a18bc1ae10ffd71fb461108cc17b.js:1
t()
application-2896a18bc1ae10ffd71fb461108cc17b.js:1
<anonymous>
application-2896a18bc1ae10ffd71fb461108cc17b.js:1
<anonymous>
application-2896a18bc1ae10ffd71fb461108cc17b.js:1
application-2896a18bc1ae10ffd71fb461108cc17b.js:19:9725

Post images are not visible in production right now

Right now none of the images are visible in production because of a malformed image url:

<img src="//var/apps/external/uploads/thumb-a7f8dc92-6c0a-4472-b5f7-f5faa323dd52.jpg.png?v=63643351435">

This happens right now because the Arc image uploader has a different storage_path configured. The problem though is that this storage path is used for both storing the image but also for determining the url.

Post to Twitter

As a user I create a new post and want to decide whether I want to share it on Twitter. The posts/new view needs to have a checkmark for that.
A tweet is published with the following things:

  • The description (if present)
  • A link to that particular post (we need permalinks for every post then)
  • Maybe an image preview (need to check if that's possible /w Twitter)

Creating posts with text > 255 chars fails

As a user I create a post with text with 399 chars saving fails with:

    ** (Postgrex.Error) ERROR (string_data_right_truncation): value too long for type character varying(255)

It should be possible to create posts with texts > 255 chars.

Group posts via hashtags

As a user I would like to be able to group certain posts by applying hashtags. A hashtag is denoted with a leading '#' and a word.
When a visitor clicks on the hashtag, they get see all posts which have that certain hashtag applied.

Add OpenGraph support

Through OpenGraph iMessage for example is able to fetch preview images http://ogp.me/ and more meta information which is then displayed below the link.
This also might be interesting for Twitter as well.

Get location

As a user I want to be able to attach the place where I took a picture. This needs to be stored and shown when all pictures are rendered.

Serve uploaded files

In development mode it's okay that the Phoenix application serves uploaded files as well. But in a production environment this should be done by another web server (like NGINX).

Handle HTTP 413 properly

When I create a new post and try to upload an image with a size > 10MB I receive an HTTP 413. Right now the application is not able to handle that and the form's frozen afterwards.

PostController file upload not optimal

Right now the PostController receives a file upload and metadata which are not JSON encoded. They're sent as Form Data, but the Router clearly specifies it accepts json.
This solution works but is not great.
Maybe it makes sense to handle that specific part via a different pipeline.

Post context menu

Every post should have a small menu which offers a couple of entries:

  • detail view
  • hide (only if user is logged in)

Post new image - Image too big

When I post an image which has a filesize >= 10MB it won't be accepted. Right now the error gets returned as HTML but should return JSON instead so it can be parsed without problems.
screen shot 2016-09-02 at 23 54 15

Logo

Dominik referred to sputnic:

dominik [14:18]
frag doch mal sputnic, die machen unsere t-shirts

dominik [14:31]
[email protected]

[14:31]
schoene gruesse von mir

Post Detail View

This needs to be done before #11 and #13

Right now, all posts are rendered as a list when the user visits the root path. In order to be able to link to a specific post it should also be possible to show one post separately.

The URL should look like this: /posts/:id.

Pagination

When there's more posts in the database, it's not feasible to load all of them at once. Therefore there should be some pagination in place which enables the user to load more images page by page.

Disable sign up in production build

In a production environment it should not be possible for users to use the sign up form. All users in the system should be created via the db console instead.

Hide images

As a logged in user I want to be able to hide certain images. A hidden image is not shown to a regular visitor but can still be seen by a logged in user.

Image preview

Check if it makes sense to render a preview of the image to be uploaded.

Make uploads folder configurable

The location for the uploads folder should be configurable. In development it's fine to have it at uploads/ but in production it maybe makes sense to host it in a different place.

Add to homescreen

Need to find out what's necessary to provide in order to get a good experience when the user adds it to their homescreen

production logging does not work

When datjournaal is run in production, logging is not on apparently. This makes it very hard to see what's going wrong in case of failure.

Application is not served properly

I believe this is the error which happens mostly after a fresh deployment. When the app gets deployed again the error is gone.

Refused to execute script from 'http://localhost:4000/js/application.js' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.

Posts should be accessible via slug

Right now a post is accessible by its id:

/posts/54

Instead of exposing the database's primary key a post should be accessible by a slug.

PostDetailView needs to scroll

When I am logged in and view a post via the URL /posts/:id on a small screen (limited height) the footer overlaps parts of the image and description. To prevent this a scrollbar should be shown.

Feature: Stories

Given the case I'm on holiday and I create multiple posts during that time. I then would like to be able to group these posts in the story "Holiday".

Deployment

It needs to be figured out how to deploy the application to the production server.

RSS Feed

All posts should be available via RSS feed. The RSS feed should contain the latest 30 posts.

The users can subscribe to it via a link from the main page.

Loading indicator

When a user creates a new post, a loading indicator should be shown for the time the upload is in progress. During that time the upload interface should be disabled.

Use production build of React

When datjournaal is run in production mode, it produces the following right now:

"Warning: It looks like you're using a minified copy of the development build of React. When deploying React apps to production, make sure to use the production build which skips development warnings and is faster. See https://fb.me/react-minification for more details."

You are currently using minified code outside of NODE_ENV === 'production'. This means that you are running a slower development build of Redux. You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) to ensure you have the correct code for your production build.

Hide/Show only own pictures

As a logged in user I can only hide/show images I created by myself. It is not possible to do that for other people's images.

Show user stats

As a logged in user I want to be able to browse stats collected by the application. I want to see how many people viewed the page today and over the last 30 days.

For the start it is sufficient to just show text. In the future it makes sense to show them in a simple line diagram.

User stats

As a logged in user I would like to see how many users visited the page

  • Today
  • Yesterday
  • The last week

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.