To start, I'd like to revise my views on Ruby.
In January this year, I wasn't particularly happy with Ruby as a language compared to Python. After having built a full-scale application that's more complex than my JTerm final project, I've found that Ruby, and specifically Rails, isn't all that bad.
Ruby may have some funny syntax stuff (like adding
end to the end of every.
single. block.), but it's a rather nice scripting language.
That said, I still like Python more. And while I may prefer Python, Django sucks in comparison to Rails.
Rails is a fantastic framework. I may not have been happy that it generated code for me before, it is useful, especially for quickly building the framework for an entire application.
On to the application.
VelocityWeb is a rails application that manages users and projects in the manner that Velocity Consulting does, which pretty much means that projects have Account Executives, and just normal people who worked on it.
That may not have made much sense. Let me break it down a little.
There are two main types of models (with several helper models), Users and Projects. Users and projects have many Relationships and ExecRelationships. Relationships and ExecRelationships have one user and one project.
Again, that may not have made much sense, but I'm getting there (I hope).
Everybody who worked on a project has a relationship between them and the project. That relationship also contains space for their position on the project and a description of what they did. Only the user who owns that relationship may modify their position and description.
Only Account Executives have an ExecRelationship between themselves and the project (projects may have multiple Account Execs), they are able to change the project's name, description, and main image.
I hope that made more sense.
What that means to standard visitors is that they'll be able to view who did what for each project, or what projects someone has worked on, which is the main goal.
Rails was rather useful for this because it made creating all of the models really, one command in the terminal and boom, full model (every generated file for models was touched, either just to give it the administrative sidebar, or to make it different in some way).
A Couple Side Notes
For some reason the site, even though the DNS records got updated before 22:00 last night, the Carthage network has yet to update them locally. It's still pushing the old site (everybody else should get the new one, my phone does).
I currently have mixed feelings on Heroku. I'm using it right now for a bog-standard diaspora install, and it's running great, but for the VelocityWeb app, it wasn't particularly good.