Harvard dataverse stakeholders would like a custom homepage for the repository. The goals are to:
There are two phases planned; the image shown below and a revised version adding a visualization and links to an About Harvard Dataverse site. See the Design project doc, with links to related files for details.

@matthew-a-dunlap here's the doc we were just looking at that has notes from tech hours and later meetings with design: https://docs.google.com/document/d/1AtvODFY8aNQSE9BleeQEf5GkFsDWrziUB-IX-1xA0Y8/edit?usp=sharing
Still waiting on new mockups from @TaniaSchlatter for the Recent Activity section, but here are some of the decisions we discussed in the design mtg.
There is a new mock up in the doc and descriptions of dynamic content including our development discussions, and discussions with library folks: https://docs.google.com/document/d/1AtvODFY8aNQSE9BleeQEf5GkFsDWrziUB-IX-1xA0Y8/edit
This issue is likely blocked by https://github.com/IQSS/dataverse/issues/3616 , in which the image urls provided by our search API are unusable. I say "likely" because I have some skepticism around using the search api in general for this page. I created a prototype javascript block for testing the "most recent datasets by category" functionality, and it seems pretty slow, but there are a number of tricks left to improve it (loading the content async, combining the two search calls into one endpoint, solr caching, etc).
Added the first version of the new dynamic custom homepage template to the docs at source/_static/installation/files/var/www/dataverse/branding/custom-homepage-dynamic.html.
This has most of the styling and messaging from the latest version of the mockups, and can be used to start bringing dynamic content from the API's that @matthew-a-dunlap is working on.
Happy to help get the javascript into it as needed, when we're ready to start wiring it up.
The state of the homepage queries:
@scolapasta @mheppler I'd appreciate your thoughts. The javascript/html in doc/harvard_custom_homepage.html can be used but it will need more work depending on the outcome of discussion.
Discussing more with @mheppler, we need # 1 to provide the results for the past 30 days.
Currently the endpoint is based around historic totals up until a provided month (/api/info/metrics/datasets/toMonth/[Date]). We'll have to expand to at least return results for the past 30 days (e.g. /api/info/metrics/datasets/past30/). It'd be nice to do something a bit more generic ( e.g. /api/info/metrics/datasets/dateRange/[startDate]-[endDate]) but that won't work well with the caching system.
I feel we should at least add endpoints for the past 90 days and past year, as those will take little extra effort and some installation will probably want them at some point.
@scolapasta @matthew-a-dunlap @mheppler Let's talk today to scope this and keep it moving.
Notes from today's custom homepage discussion:
...source/_static/installation/files/var/www/dataverse/branding/custom-homepage-dynamic.html version of the template for the guides and remove the working doc/harvard_custom_homepage.html versionI've updated Dataverse to index DV Category for datasets and files. This allows us to search for datasets via the dataverse category.
One downstream change is that the count for Dataverse Category on the search page now reflects datasets.

2 + 2 = 4 total for the category.
Is this what we want? The most straightforward way I can see to avoid datasets showing up for Dataverse Category is to index this data under a different name for datasets/files. The trade-off will be that users won't be as easily able to search for datasets by dataverse category.
@matthew-a-dunlap Good question. The category is "Dataverse Category." If we take that literally, then a count of 4 is inaccurate. The categories we have are most useful as describing dataverses, not datasets, so I don't see a problem that users won't be able to easily search for datasets by dataverse category. Other filters are more relevant for finding datasets.
We should review sign up/login redirect bug #3225 when we next demo the custom hmpg.
Final(?) to-do list from latest demo:
OVERALL
ACTIONS
SEARCH
RECENT DATASETS
OTHER LINKS
I just mentioned to @matthew-a-dunlap that we should probably revisit what's written at http://guides.dataverse.org/en/4.9.4/api/intro.html because I neglected to add "Metrics API" to the list at the top and we should probably revisit what we wrote about miniverse under "Metrics" at the bottom of that page. Here's how it looks now:


Deployment notes:
Testing notes:
info/metrics/[type]/pastDays/[days] . After being queried, this value is cached for 24 hour, regardless of the cache config variable.info/metrics/datasets/bySubject . This is affected by the cache variable :MetricsCacheTimeoutMinutesinfo/metrics/datasets).info/metrics/datasets/toMonth):MetricsCacheTimeoutMinuteshttp://localhost:8080/api/search?q=*&type=dataset&fq=categoryOfDataverse:(%22Research+Project%22%20OR%20Researcher)&per_page=3localhost:8080/api/search?q=*&type=dataset&per_page=3&subtree=asdf&subtree=frog1Now with improved responsiveness for browser windows 305 px in width (Firefox wouldn't go any smaller 馃槩 ).

Revised the new text in the Custom Homepage section of the Configuration > Installation Guide.

Now with responsive subject columns.

As of 2f52f13d2 I'm seeing failures on the following lines of SearchIT:
I should note that I also tried to run the full test suite in docker-aio a couple times but I'm getting strange failures and I suspect that Glassfish might be restarting or something.
Fixed the researchers activity to now include "Research Groups". Cleaned up some minor layout spacing issues. Confirmed and revised other repositories link URL and text with the library folk.
I fixed the broken test and updated the metrics guide, let me know if you have any more feedback @pdurbin
As I mentioned at standup the other day, the scope of this issue has been increased slightly to add new "naked" endpoints such as...
These return counts and if we're rethinking the namespace of the API perhaps we should add the word "count" in there like either of these...
... but not breaking backward compatibility with what's in production already.
I loaded up b1e685e on https://dev1.dataverse.org and learned that MyData is broken, throwing the following exception, so I'm moving this back into dev.
java.lang.NullPointerException at edu.harvard.iq.dataverse.search.SearchServiceBean.search(SearchServiceBean.java:246)
If we write some tests for MyData for this issue we will be ahead of the game for #5042.
@pdurbin if it's back in dev., who's working on it?
I will remove my name from it then.
As @pdurbin mentioned, we've updated the Metrics with new endpoints. We feel there may still be room for improvement with the api namespaces as well as the documentation for those namespaces.
The main open question we've had is how we organize our calls. In the doc they are currently listed as _counts_ and _other_, but could be changed to _by object_ and _by facet_. Regardless of the naming we have gone back and forth over whether the paths to the calls should reflect these categories, or if they should stay as is with the shorter structure.
Below is the current doc page.

Here are up-to-date release / testing notes on this issue:
GET https://$SERVER/api/info/metrics/$typeGET https://$SERVER/api/info/metrics/$type/toMonth should still workGET https://$SERVER/api/info/metrics/$type/pastDays/$daysGET https://$SERVER/api/info/metrics/dataverses/bySubjecthttps://demo.dataverse.org/api/search?q=data&subtree=birds&subtree=catsIssues:
-Categories, all recent links throw exceptions when root dataverse not named root.
@kcondon The hardcoded "root" dataverse name was something known during development and accepted as this is a custom homepage template, and the dataverse name can be customized along with the other content, like which categories to show recent datasets from, because other installations might not have "Journals" or "Research Groups".
If this isn't clear in the documentation, we should add that changing of the root dataverse alias is required in the javascript and other links for those to work.
@mheppler was just concerned about deploying to production where it would act the same and was not aware of the cause of the problem, plus no errors indicating what the problem was.
@mheppler you mean this?
Note that the custom-homepage.html and custom-homepage-dynamic.html files provided have multiple elements that assume your root dataverse still has an alias of "root". While you were branding your root dataverse, you may have changed the alias to "harvard" or "librascholar" or whatever and you should adjust the custom homepage code as needed.
Kind of low on the usability scale IMHO.