Let's Build: With Ruby on Rails - Project Management App - Part 1

Опубликовано: 22 Март 2026
на канале: webcrunch
32,744
298

Hi, My name is Andy Leverenz. I design, code, and am an author of things. Check out my blog Web-Crunch https://web-crunch.com🤘🏻

☕️Help me keep going:
https://www.buymeacoffee.com/webcrunch

Welcome to my next installment to the ongoing series called "Let's Build: With Ruby on Rails". This 10-part series will cover building a project management type of application from the ground up.

Similar to the previous installments I'll dive a bit further into more technical aspects of Ruby on Rails. We'll discuss things such as nested attributes, model relations, and getting a little fancy with forms using Vue.js.

As a prerequisite, I recommend following at least one of the previous parts of the "Let's Build: With Ruby on Rails" series. Find those on my blog linked below!

What are we building? Projekt

⚙️ Download the source code https://github.com/justalever/projekt

For lack of a better name, I titled the app "Projekt". The goal of the app is to be a home for any amount of projects(think Basecamp but much more stripped down). A project lives within a team and can have as many users as necessary. A user can only belong to one team at a time (this is a small side-effect of the Devise gem. Ultimately, we'd want to extend this to allow a single user to belong to multiple teams.)

The app will have 3 overlying models/relationships to tie together each other as we press forward but I'll outline the "wants" below:

1. A User can create a project if they belong to a team.
2. Creating a team assigns both your own account plus those you invite to a team.
3. Projects require a team in order to be created.

The tech stack

I think it's pretty obvious we'll be using Ruby on Rails in this series. On top of Rails, I wanted to approach our app with a little more modern of a mindset set. Much of the interactivity I introduce has Vue.js to think. In our Teams model, for example, I implement a form with nested user attributes. The end goal is to create a team and invite new users to the team all at once. Nested attributes and Vue.js make this a very fluid process.


💻 Previously published at:
https://web-crunch.com/lets-build-wit...

💻 Check out the blog:
https://web-crunch.com

💡 👫 Check out my agency:
https://coupleofcreatives.com

🦄 Check out my personal site:
https://justalever.com

🚀 Links:
Weekly Newsletter: https://web-crunch.com/subscribe
Twitter:   / webcrunchblog  
Twitter(Personal Account):   / justalever  
Facebook:   / webcrunchblog  
Dribbble: https://dribbble.com/justalever
Github: https://github.com/justalever
Medium:   / the-web-crunch  

📘Check out my book on UX Design:
"LUXD: Learn User Experience Design"
https://web-crunch.com/books/luxd

📙 Check out my FREE book on Tumblr Theming:
"Pro Tumblr Theming"
https://web-crunch.com/books/ptt

💯 Need awesome web hosting? Check out cloudways. They allow me to use a variety of hosting providers and build apps with ease:
http://bit.ly/webcrunchhosting