Looking for recommendations and advice for DB project with subscriptions - content-management-system

I have a client who has a bunch of data that she wants to put into a database and have it searchable and filterable for paying members only, ideally on a subscription basis (monthly, 3months, yearly).
I've done a couple of projects using KeystoneJS, so my first thought is to build out the DB/CMS in keystone and create a small front-end application in NextJS for registering users and subscriptions powered by Stripe.
Does anyone else have any experience building something like this? Any recommendations or suggestions? I know I could obviously do something like this in WordPress, but I prefer JavaScript. Although I could be convinced if anyone has a compelling argument!
Thanks!

Disclaimer: I'm on the Keystone dev team so possibly biased 😅 That said, Keystone does sounds like a good fit for your project.
One project I've worked in particular sounds close to what you're doing – a large website with Stripe-based subscriptions that unlock additional functionality. The site has over a million registered users, 30k of which are on paid subscriptions. Keystone manages all the data, the admin UI (used by staff) and most of the API generation. The dev work was mostly to build out the public, Next.js frontend. The solution and general architecture has worked well.
You mention search and filtering. The GraphQL API Keystone generates is extremely flexible in terms of filtering but doesn't currently offer any full-text search functionality (though, it is planned). Depending on your exact requirements you might need to go beyond the basic configuration. In the project described above, we flattened some of the content out behind the scenes, added some full-text indexes and extended the GraphQL schema with some search queries.
Whether it's this kind of extension, custom field types, hooks or customisation of the Admin UI, Keystone has a lot of "escape hatches". It very much tries to create a framework that guides common solutions while also helping developers extend and build on it as a platform (without getting in the way).

Related

Outsourcing web content versus maintaining local content

I am developing a full web application...
I am considering using prismic.io to outsource some web content which I will query through graphQL. But I would store personal information about users in a local instance of mongoDB.
Whats the long term benefit? If I can just store all of the content myself through an instance of mongodb which holds it all for me.
This is mostly my opinion, if you're a developer working alone or just with other developers, and are only looking for a place to store data, then you're probably better off not using a CMS. One of a CMSs main purposes is to extend the ability to significantly modify an application to non-technical individuals. For example, building a website for a local restaurant, and wanting to allow them to change their menu, without you having to build out a UI to enable it. With a CMS they'd be able to easily change the text and other content on their platform, whereas interacting with a mongo backend might be a bit less straightforward for them. For a more industrial example, say you have a marketing team, who need to run A/B tests to determine the optimal content for a site, they can perform their tests, and have their changes reflect into a template you set up, without them (and you if you set it up cleverly) having to write any extra code. There are more advantages and disadvantages to using a CMS, but I think accessibility is the main reason reason to consider one, especially long-term.

Confused between Jahia and dotcms as a java CMS

Which is better for web content management purposed only?
The website requirements include a user discussion forum and a poll survey with a good search facility and also needs a good SEO tool. The site should also load faster and should be easy to edit contents.
I can't speak to Jahia, but dotCMS can do everything you're asking for. Below are some links that should help you self evaluate dotCMS. I also would point out that dotCMS is more of a platform (makes a great user experience platform UXP) than an off-the-shelf solution and because of this your requirements might take a little work to setup and get running. With that being said, your finished product should meet your exact needs.
Site Search (uses ElasticSearch)
http://dotcms.com/docs/latest/SiteSearch
Performance Report
http://dotcms.com/aw/performance-report
I hope this helps.
Jahia should be able to handle these request. I am the opposite if Fish and have experience with jahia. Jahia does have a forum and poll component's both available as open source so you can modify the code when you require to.
What I like about jahia (among many other things) is that editing content is straight forward and very easy to for non technical persons. ofcourse it has all the permissions in place for all content so you can set it up in such a way that you don't have to be afraid that the non technical persons will mess-up a website.
Performance of Jahia, even without fancy caching proxies is very good and it can run on low resource VM's, just if you want to start small. I am using them on small Linode machines without any issues
I have not worked with Dotcms, but basic forums, polls, search, and SEO are all freely available as Jahia modules. The forums are certainly not as good as a standalone like Vanilla, but they are simple to add and administrate. Search is good and requires little configuration, and anything more than basic SEO is going to be custom work.

Creating a database of many products

I am creating an inventory app currently for iPhone using Parse for companies to keep track of all of their tools, supplies, inventory. Now I'd like to allow for the user/company when adding a new item to their database for them to have the option to search from a pre-made database of items such as for a construction company when adding a simple Dewalt Drill Battery to their inventory would search the pre-made database for "Dewalt #DC9096 18V XRP 2.4A Battery" or an office would search for pencils by brand/serial number/name. I am looking for a simple way to make a database or even a table containing multiple brands products including their prices, product specifications, website for ordering more, company website, warranty phone number, etc... I have considered parsing all of the retail websites for information but don't know the legalities behind it and if the websites change then I'd need to update code. If there is ANY (easier/better) way to do this then assistance or direction would be great!
Thanks always
I would not go down the route of trying to parse websites, that will be a huge pain in the neck and impossible to maintain unless you have extensive resources (and as you mention it probably violates most site's terms of service anyway). Your best bet would be to hook into existing product databases via an API, such as Google's Search API for shopping, or maybe Amazon's API. Here's where you can start if you wanted to use Google:
https://developers.google.com/shopping-search/
Hopefully that gets you going in the right direction.
Edit: Here's a list of a lot more shopping APIs that could be good options:
http://www.programmableweb.com/apis/directory/1?apicat=Shopping
If you did find yourself needing to parse many different vendor websites (we'd call this "screen scraping") and you have the legal right to do so, you should use a tool like SelectorGadget to get your XPaths, it's much faster, easier and less error-prone than doing it by hand.
If you're doing more than a couple websites, though, you'll probably find that you'll have to update the scraping rules pretty often, it definitely won't be a set-and-forget operation.

Can WordPress handle these functionalities?

I'm a front-end designer/developer whose weapon of choice for the back-end is WordPress. Up to this point all of my projects involving WordPress were fairly basic and it has handled everything beautifully. I just landed a new client that wants some extra functionality built into his next project and I'm hoping some of you WordPress wizards can give me some good advice while I'm putting together the quote.
I'm trying to limit the need for any subcontracting for the back-end functionality, so my question is whether or not WordPress can handle the following (via plugins or light custom manipulation):
The idea behind the site is to be a community calendar based on location that Health Care providers can log in and post their events to, as well as participate in discussions, blogs and all the other WordPress goodness. The specific functionalities that I'm unsure of the best way to accomplish are:
Full featured calendar that members with access can add their own events to - must be searchable by date/type of event/location etc
Event generator module for members that integrates with calendar - includes upload field for images and forms for details event info
Interactive map to filter both of the above by location (I'm assuming this will need to be flash, but I'd rather find another solution if possible)
I know there are other solutions out there that may be more suited to this than WordPress (Drupal, custom build, etc) but if it's at all possible to tackle this as a one man show then I'm going to charge it head-on!
Stack Overflowers and fellow WordPress fans...your insight would be much appreciated. Thanks in advance for your time.
This graph grants your experience with your weapon of choice, but the results are still clear. You can still tackle this as a 1 man show, it will just take a bit of a learning curve to conquer the fundamentals of a CMS more suited to the task at hand. I'm sure plenty of WordPress affecionados will come along and strangle my reputation, but I've worked with both and have found that in terms of flexibility, WordPress is not king, and for the custom coding you are going to have to do (hope you have some PHP?), I feel that you will find it easier to integrate with another platform. This task will be difficult if not impossible to accomplish without writing code, even if there is a set of plugins that appear on the face to match your needs perfectly.
But anyway, since you probably don't really care that much about my opinion, for WordPress, your plugin options look like..
Calendar - Events Calendar
http://wordpress.org/extend/plugins/events-calendar/
The screenshots don't look terribly promising though.
Most plugins I have found are geared toward being administered from the admin panel, it may be difficult to provide a user interface to such plugins, and it does not look like the event calendar is an exception. An experienced developer should be able to hook into the event publishing code with relative ease, but it could be a frustrating experience for the inexperienced.
For interactive maps, the Google Maps API is very feature rich, and you should be able to adapt it to your suit your mapping needs, regardless of platform.
If you want all of your providers to have their own blog, etc, what was once the WordPress MU plugin, but is now core-bundled WordPress MS (multisite) is what you need.
This again may also prove rigid, and you may encounter difficulty trying to bend the iron of WordPress enabling all your multisite users to be able to post to a common community site. I've only built 2 platforms with MU, so I'm not positive about this.
To unapologetically reiterate my first point, what would be light custom code may turn impossibly frustrating using WordPress.
I like WordPress, and choose it often for my clients. I have never extended it to suit a larger project.
If you do decide to use it, I look forward to hopefully helping you with any questions you may have along the way, feel free to ask.

How difficult is it to build a website in Sitecore CMS

I have got one project where I need to build a site in Sitecore CMS.
I have never used that CMS.
I want to know that if my programming skills are good because I don't know ASP or ASP.net but do know PHP.
The sites are simple html pages with no logins and processing.
Can I do it few weeks?
I was a PHP person when my company switched to Sitecore, although we had an ASP.net developer.
99% of what is done in Sitecore is achieved without any .net programming requirement. A website consists of data templates, which are defined in the Sitecore desktop environment (much like Windows, but in a browser). Data templates define the fields that each type of page has, the workflow it is in and other content-centric things. Renders are then attached to the template - these are xslt files which take the data provided by the data template and format it into (x)html.
I'd recommend getting enrolled on the Sitecore Developer Training - this is a one day course which will get you fully set up and ready to start building.
http://www.sitecore.net/en/Training.aspx
Sitecore v6 is easier to build with than v5. There's also SDN (sdn.sitecore.net) which has a large amount of documentation and examples.
Also, as Sitecore is only available through Sitecore Partners, you should have access to a knowledgeable Sitecore Professional.
Seems like it's real easy.
http://www.sitecore.net/en/Products/Sitecore-CMS.aspx
Sitecore Makes it Effortless to Create Content and Experience Rich Websites
Sitecore helps you achieve your business goals such as increasing sales and search engine visibility, while being straightforward to integrate and administer. Sitecore lets you deliver sites that are highly scalable, robust and secure, and is built to simplify your life, automate your processes, and let you deliver results faster.
Seriously, this question can't be answered as is. Sitecore CMS can be used by business users with no dev experience and it can be used by developers to do more complicated things. How complicated it is to use Sitecore depends entirely on what exactly you're trying to do. It might be easy, it might be complicated, but without more details it's impossible to know.