Questions Before I start My App

Hello, I am just about to start a web app for one industry, to make it easy I will explain this as if I were developing a eCommerce platform so you don’t get confused by the actual idea it’s self.

So you might be thinking “Woah, an eCommerce app that sounds like a lot of work!” well the only functions I actually need to include from the eCommerce standard functions are the following:

NOTE: No products can be bought online only inquiries can be left such as filling out a form.

  1. I need a very standard backend for the site, I’d like to list new products (Basically just adding documents to a collection) this includes uploading up to 9 images. This standard backend will also hold all enquiries that have been submitted from the front end forms on the site. I’m unsure if I will be able to add a function or not to directly reply to the people who submitted the forms using their email within the backend or not. I’d also like to be able to modify the inventory collection that lists all of my products. (If anyone can see anything that I might struggle with in these steps please let me know)

THE SERVICE: I will explain how I will be actually working with clients before explaining the next step. Our clients are going to be pretty simple people that don’t really have the time to change things on their site such as promotions and website information. For this reason I want to be able to have 2 admin panels one for listing products (Altering the inventory collection) and one for actually making some more advanced changes on the site.

  1. This second admin panel will include settings for us the developers. I don’t want the client to get overwhelmed with all of the advanced settings whilst listing a product. As I said we will be doing all of the advanced changes on the site for our clients so it seems like a better idea to have a separate admin panel. (Let me know if you think there might be an easier way around this).

  2. The front end, every client is going to have the same front end with some styling changes. So the idea is that the layout of the main.html will be the same so that we can roll websites out at a much faster rate than rebuilding it again and again. Some clients might not want some features so we need a way to link the developers admin to the front end and make it so that every template within main.html has an ‘if’ statement determined by our developer admin whether it should show or not.

So those are the 3 main components I need:

  • A backend for clients to list products.
  • A backend for advanced settings changes for our developers.
  • And a front end that displays all of the results.

I have decided to use one database per app as I have heard that one database across all of the web apps would be an absolute nightmare although it sounded like a good idea at the time.

So can you see any issues with this or problems I might encounter? Also how do you start developing your app, would you say it is a good idea to start with the front end and then add the backend functionality later? One benefit I seen from this is that I would know exactly what I needed my backend to do however at the moment I am struggling because I don’t know how the front end is actually going to look.

Any help would be absolutely great!

Thanks, Nick

Usually you will need some test data to show on frontend, so some backend functionality to add/edit these is helpful.
If you go with package architecture, you can start develop it as 1 app and later split to frontend and backend part quite easily.
1DB per site sounds good.
Every Meteor app is spammed with all changes in given database. So when it grows it can become counterproductive if you have them in 1 joined.
But to start you will see that for static content you should not have problems.
Depends on number of change actions users will produce.

There is roles package, so based on user role you can show different admin interfaces and also allow/deny different actions. So it should not be problem.