My first app - administrating & routing concerns

Hello there fellow devs.

I’ve just decided to start with my first real-world app on Rails 3.2. I’m a newbie so go easy on me :P. Let me describe my app idea.

The app is a “Daily Offers” site, where visitors will be able to watch all the new offers that the “Vendors” will submit. Now the important part - the “Vendors”. ‘Vendors’ are in other words the people who paid to signup for my app and will be able to submit their ‘Offers’.

Here comes my first issue: implementing the admin control panel: I want to give these ‘Vendors’ a separate admin panel, where they will login and they’ll be able to manage their offers, see their stats and more. I know it’s easier to implement front-end administration but the way I thought it, in my case it feets better to have totally different views for administrating.

Now, after a search, I thought that using namespaced controllers and views would be a good idea (ex. Admin::MainPagesController etc). Isn’t it? And then I’ll implement my authentication system (don’t want to use any gems cause I want to practice and learn Rails) to restrict admins the ability to view-manage only their offers and not the offers of other admins. Do you have any other suggestions on this issue? Is there another way to do it other than namespacing the controllers and views?

Second issue - routing: I believe how will I route depends on the urls I want to have, right? So I have 2 resources in my app, :vendors and :offers. I decided to nest the offers resource inside vendors cause that’s the more natural way, an offer makes sense to be always precedenced by it’s vendor, isn’t it?

Some questions:

  1. I want to have URLs like example.com/v/ instead of example.com/vendors/. So I did it like this, seems to be working but I don’t know if it’s a good practice or not: https://gist.github.com/1949898
  2. If later I want to add subdomains like .example.com (which would match to example.com/v/), could this be done easily with the current routing I’m doing?
  3. Is this considered RESTful approach? I really want to do it the best way. Thanks in advance.

Also another question I forgot. Right now, by namespacing the controllers, I have a VendorsController with the index and show actions for the public visitors and then I will need to have another controller in the Admin:: namespace to provide ‘Vendors’ the ability to edit and update their info (name,username,email etc). How should I do this? Add a VendorsController with update and edit actions in the /controllers/admin/ folder? Or just use /controllers/vendors_controller.rb and restrict the actions to the Vendors?

Can anyone give me some insight on this? I really don’t know how to do this.

Maybe I should start from implementing the front-end first and then get on with the back-end (eg. admin panel)?