Or one could simply use a ready made blog-platform like Wordpress which supports a majority of the features listed
and maybe modify it a little
> Allow signup/signin
Check.
> Allow public sharing of journals/non public
Private and public posts.
> Allow submitted “ideas”
Use comments for getting those.
>Make it look decent
Thousands of free and premium themes available.