Giter Club home page Giter Club logo

discoverdotnet's Introduction

⚠ This repository is now archived. It was a fun ride, but as my own time has dwindled, the list of projects and blogs that Discover .NET indexes has fallen further and further behind. And that's not even considering all the pending functionality I had wanted to add as the site itself gets more stale. Now that builds have started to fail, and it would take some debugging to figure it out (time that I don't really have), it seems like as good a time as any to throw in the hat. At the moment it's just not a project I can commit to keep up to date. Thanks for all the submissions! I'll keep the code around as a reference for anyone who wants it or would like to do some data mining.

--

Discover .NET

https://discoverdot.net

Building

To build the site for previewing, you'll need to set the following environment variables:

Then run the following command:

build -target preview

This will build the site locally using a few items from each type of data and allow you to preview it (watch the output for the URL, but usually it's http://localhost:5080).

discoverdotnet's People

Contributors

aclerbois avatar aclerbois-zz avatar darkl avatar daveabrock avatar daveaglick avatar eloekset avatar gep13 avatar gimlichael avatar gsferreira avatar gshackles avatar hlaueriksson avatar hypeartist avatar japierdolewszystkozajete27 avatar jerriep avatar joaofbantunes avatar joel-jeremy avatar johnkors avatar jonpryor avatar lprichar avatar maartenba avatar matkoch avatar meysamhadeli avatar meziantou avatar piotrbach avatar rehansaeed avatar remibou avatar seankilleen avatar stephencleary avatar turnerj avatar unchase 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

discoverdotnet's Issues

Pull project data from repos

As suggested by @khalidabuhakmeh - consider searching all of GitHub for a file like discoverdotnet.yml and use the ones we find to supplement the project data in this project. Some considerations:

  • Security will be a concern - when all the data is here it has to go through review, not so if pulling data. Will need to make sure all content that gets output is properly escaped.
  • Need to handle malformed files. Again, because data here is reviewed it’s not a problem, but could have bad data from external files.
  • Consider quality of projects - how to make sure folks don’t just add hundreds of “Hello World” projects? Some minimum bar to include them?
  • Tag taxonomy might be a problem, consider implementing a tag white list and only use tags from that. How to warn if a tag is used that isn’t part of the whitelist?
  • If a data file exists both in here and at the originating repo, which one takes precedence? First thought is that the external one is always used first but any values from it are overwritten by equivalent properties from the internal one. That way we can override bad data here, but supplemental data like chat, donations, etc. and get pulled from the external file even if we define the project here.

API

Output general-purpose JSON files for all items to an "API" and document them. Consider two versions of each type of item: one JSON file that contains all the data and a set of JSON files that's been pre-paged (with page number, total pages, and total count for each)

Email newsletters

Not sure what this would look like and how it would get triggered. Maybe at generation time, or maybe as a separate Azure Function or something.

Project tag white list

Consider defining a tag white list for project tags. That should help keep them clean, especially if #17 is implemented. Make sure the white list is displayed for folks making contributions.

Hot bits

Add a section on the homepage (and feed, api) called Hot Bits that lists new NuGet (and Choco?) packages from known projects in the last 24/48 hours.

Add licensing info to projects

Pull from GitHub once Octokit supports (may already in most recent version). Fallback YAML property. Add filters to grid and display on cards.

Create a Twitter bot

Should Tweet out content from the site like the daily discovery, recent blog posts, issues, random projects, etc.

IE 11 support

A reddit user noted that the site doesn't work in IE, and they're not wrong. I took a quick look to see if it was easily fixable and got part way there. However, there are still some layout issues with the footer not being pushed down (possibly due to flex: 1 usage) and cards not rendering.

At this point I've spent all the time I can on this unless there's a large outcry for IE support. Otherwise, I welcome someone from the community who's much better with the front-end and JavaScript to take a look.

Initial requirements/ideas

Loose brainstorming follows, will refine as I go:

  • Static site generated by Wyam

  • Generated nightly (or even more often) on a schedule by AppVeyor

    • Metadata for projects (stars, forks, etc.) will be regathered nightly for every project
  • Hosted at Netlify

  • Similar idea and presentation to staticgen.com

  • ✓ Projects will be represented as .md files so an optional description can be provided as page content

    • ✓ If no page content, use the rendered readme file from GitHub (if available)
  • ✓ Home page

    • Be sure to link to main .NET site and .NET Foundation
  • ✓ "Daily Discovery" features a single OSS project per day

    • ✓ Featured on the top of the home page
    • Tweeted out each night (from dedicated Twitter account, dotnetoss, ?)
    • ✓ Specified by a particular date value in front matter like Discovery in the project .md file
    • List of n previous days discoveries under today's discovery
    • Link to full project archive under most recent days
  • ✓ Project details page

    • ✓ Each project has it's own page
    • ✓ Section for metadata, maybe in a sidebar
    • ✓ Get metadata from GitHub: stars, forks, issue count, commit count, earliest commit date?, most recent commit date?
    • Specify additional metadata in the project .md front matter: primary language (C#, F#, VB, ???), tags (how to reconcile with GitHub topics?), web site (or use GitHub value if not specified), Twitter handle, chat link (Gitter/Slack), NuGet package, ???
    • Get readme content from GitHub and mirror, possibly as tab in main content section
    • Some way to show help wanted issues (how to identify them? by indicating the used help wanted label in project .md front matter?)
    • Should some sort of commenting system be supported? Might be cool, or might be just another place maintainers would have to keep an eye on (bad)
    • Display other projects from the same owner
  • Full project archive

    • Separate section from home page
    • Includes daily discoveries as well as not-yet-featured projects
    • Card interface like StaticGen
      • Same card UI for archive and daily discovery section on home page
    • How to deal with list when it gets long (paginate, endless scroll?)
    • Sort full archive by day featured, project name, stars, forks, issue count, ???
    • “Shuffle the deck” option to display in a random order (maybe this should be default?)
    • Filter full archive by primary language (auto-populated from front matter values)
    • Filter full archive by tags (auto-populated from front matter values)
  • Help wanted issues

    • Aggregate over all known projects
    • Search and filter
    • Projects that might be in trouble and need help (long time since last commit, how else to determine?)
  • Form to suggest new projects

    • Should automatically submit as a PR - maybe using https://staticman.net/ or similar
    • Each type of data (project, blog, etc.) will need a slightly different form to match the expected front matter - put them all under /add
  • Blogs

    • With an aggregate blog roll
    • Download an opml with all the blogs
    • A daily recap of all new blog posts the previous day
  • Broadcasts

    • Podcasts and Video (YouTube Channels, etc.)
    • Pull latest from RSS feeds
  • Resources

    • Tags and filters to help find stuff
    • Non-personal Twitter accounts and bots
    • Other sites
  • People

    • Detail page could link to blogs/projects section, list data from GitHub if given username
    • Not too sure about this one - keeping a database of all community members would be tough, and how to identify them?
    • Interview with community members featuring same questions for everyone - feature one a week (?)
  • Events

    • Conferences, users groups, live coding sessions
    • Distinguish between event (user group, conference) and meeting (instance of the conference this year) - keeping a full database of meetings might be too much trouble, does Meetup have an API? Could at least pull from that for upcoming meetings of user groups...
  • Email newsletters

    • Daily discovery
    • Previous days blog posts and broadcasts
    • A daily version and possibly a weekly digest
  • RSS feeds

    • Daily discovery
    • Previous days blog posts and broadcasts

Any more ideas? Add them as comments!

Add Filters/Sort to URL when changing them

Update the URL to include any filters or sorts applied when browsing projects.
It would be nice to be able to link someone directly to, for example, the CLI tag if you need a new library for a CLI parser.

e.g.

https://discoverdot.net/projects/?tags=CLI,PDF

Move helper code to library

Until Wyam supports includes, move common helper code to a library that Wyam can reference. Use the Cake build script to compile the library prior to running Wyam.

Consider adding support for multiple NuGet packages and families per project

Support multiple NuGet packages for each project. If a NuGet package ends in .*, look up all the NuGet packages with that pattern and include them on the project page. Will need to revise the way packages are presented to allow for multiples (and probably rename the "Versions" tab to "Packages"). Include package descriptions for each package to help distinguish.

Project filter for active projects

Add a filter to limit projects to only those that are "active" (need to define what that means). That way if users don't want to see older projects they can hide them.

Wrong date on the recent discoveries

Hi,

First, thanks for this awesome site 👍!

The last 3 recent discoveries all have the same date (June 2, 2018). I amready noticed it yesterday but it was only the last 2 recent discoveries (the date was June 1, 2018).

Figure out how to handle non-English blogs

Several non-English blogs have been submitted. Not sure about the best way to handle these yet so I've been requesting we add them to the resources section for now. I'd like to include them, but the concern about adding them in the main blog section is that will make it multi-language which means it'll be a toss-up whether you know the language when you open one. At least with English it's consistent.

One approach would be to add them with a Language metadata value (English assumed if omitted) and then hide non-English blogs initially and from the feed. That way if you understand and want to include another language you can elect to do so, but the blog section stays single-language by default.

Add a flag CFP

Hello,

I think about create a flag for Call4Paper in the events section with a link to this CFP.

What's do you think about this idea?

Best regards,

Adrien Clerbois

Add Getting Started To Readme

I forked the repo, but have no idea how to get wyam to build what's there. A simple how to get started would help :)

PR validation

Perform a validation build for PRs:

  • Pull existing data from the API so we don't need to issue any GitHub/NuGet/etc. queries (#25)
  • Load YAML files and skip the ones we already got data from the API for
  • Issue web service requests to get a complete document for the new ones (use the shared helper code from #24 so requests are the same as a normal build)
  • Do verification (no duplicate titles, no duplicate source repos, existing tags, etc.)

Add edit button/link directly to cards

Especially important for things like resources, groups, events, etc. where there’s no on-site detail page. Need to handle situations like cards from the Meetup API that don’t have a backing YAML file.

Add project-based blog/broadcast support

Some blogs and broadcasts are focused on a specific project. I don't think it makes sense to include these in the general blog/broadcast areas - if we get enough of them they'll overpower the more general information. Instead, should add a project field to blogs and broadcasts that, when set, will hide the feed from the general section (perhaps with a filter so you can turn them back on if you want?) and instead include it on the project page.

Question: non-English content

Hi!

Nice work!

I wanted to ask you what is your opinion on non-English material. For instance, I wrote nearly 400 posts about dot net tips in Hebrew (located here).

Would it be ok to add this as a resource (it is not very active as a blog)?

Elad

Consider adding a people section

We've got enough data between project owners, NuGet owners, feed authors, etc. to get a pretty good picture of people. Additional data like Twitter accounts and avatar images could be pulled from one or more of those sources. Challenge will be finding data elements that accurately correlate a specific person between services.

Add a flag and filter for legacy projects

It's valuable to have them listed and aggregated, but would be nice to be able to filter them out too. See if we can get the GitHub read-only status via Octokit to set.

Add retry for GitHub API

The GitHub API is periodically failing. Instead of failing the whole build, we should retry a few times first.

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.