Big Project but where to start??

#1
[eluser]timsby[/eluser]
Hi everyone! My first post here so go easy on me Smile

I understand the MVC development mechanism and have been running through a few tutorials on CI. I have to say i love it over any other framework mainly because of EllisLab. I guess you trust what you know and having worked with EE for the past few years i definitely trust CI.

My problem right now is I have a big personal project I am working on. It will include the ability for people sign up (subscription based) but due to user levels it would be highly complex. For instance, a head teacher from a school signs up, in that school you have 10 teachers who all sign up under the school and under the teachers the pupils can sign up. All have restriction and different levels of admin ability.

The vision is there i know exactly how i would like it to work but for the first time in my life i actually don;t know where to start! My car broke down last year and I was told I needed a new gear box. I bought about 4 books and studied 11 hours and eventually i fixed and replaced it myself. So I am always highly motivated to do things when I know a clear starting point for development. But in this case I have no clue.

(Am I in way over my head?? I have coding experience but should i rely on someone more learned in the field of large robust web applications?)

I also wanted the ability for people to either use their own domain name, buy one from us to use or their organization to have a sub-domain with our site.

All opinions/advice welcomed and sorry this was such a long post hope to hear from you guys soon! Confusedmirk:

#2
[eluser]PowerCode[/eluser]
Ok, I guess the main problem you're facing is with ACL. I'd highly recommend taking a look at Zend's ACL component. Head on the framework.zend.com. You don't need the entire framework (even though you'll have to download it all), just the ACL component and its dependencies. That's the beauty of Zend's loose coupling.

Next, you can create ACL roles just like you have in your mind (with hierarchy etc.).

Basically, you have

1. A school, administered by a Head Teacher (Super-Admin kinda thing)
2. Next, you have Teachers, signing up (Admins ?)
3. Pupils can be given a separate role (kinda like normal users on a site)

You can query Zend's ACL after creating roles and resources, it'll take care of hierarchy and other stuff, and simply tell you whether a role is allowed to access a specific resource.

If you'd like a pupil to be "under" a specific teacher other than the school, you can have a teacher_id foreign key. If you want a pupil to belong to multiple teachers under a school, but not all, you can use HABTM type relationship which you can code yourself (you can take a look at website tags tutorials over the net to get the idea of the concept).

Also, after the authorization, you can perform additional checks like e.g., A Head-Teacher might have the ability to add/remove notices, but only as long as that notice belongs to the school to which the Head-Teacher belongs.

I'm in a slight hurry, so couldn't go in detail. If you can explain your problem more, the community could help better.

#3
[eluser]timsby[/eluser]
Thank you for your response. I guess having looked back over my OP i didn't really explain myself very well. I have written up a detailed application requirements list and feel as though in terms of programming I am way out of my comfort zone. I have come to the decision that I will most probably out source the work. It pains me to say it but I am way out of my depth on this one. I wouldn't mind building an application with CI with...

1. A school, administered by a Head Teacher (Super-Admin kinda thing)
2. Next, you have Teachers, signing up (Admins ?)
3. Pupils can be given a separate role (kinda like normal users on a site)

But I'm not sure how I would begin to start coding it? I could most probably do it eventually but the time it would take learning the coding techniques... I'm not sure of it would be worth it.

anybody know any tutorials on how to implement a site with ACL and subscription based?

#4
[eluser]BenJaminJ[/eluser]
I'd say that if that model sounds scary to implement and you have no idea where to start, you may be over your head. It sounds pretty straightforward to me.

Most of us old cats start by designing the database schema. All apps are at their core bits and pieces of data, no? CI is just the logic box that plays with that data. If you are familiar with traditional schema design, start putting together the tables and columns you'd need. (If you aren't, you need to be.)

You'll quickly see how everything fits together. Even if you don't put the system together, it may help clear up your vision for the project.


Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2021 MyBB Group.