My Ruby on Rails Application
Published: 2023-12-23 08:23:28

Over the past couple weeks I have been working on creating a Ruby on Rails application. It was definitely a great learning opportunity and I am so grateful for the amount of things I have learned whilst creating this project. 

**Beginning the Project**

I decided that I had wanted to created an application that I would be able to utilise as the backend for my Phase 5 project (a full stack web application). I already had some ideas as to what I would like to create in the Phase 5 stage of the course so I decided that the best course of action would be to create a backend I would actually be able to utilise later in the course. 

**The Idea**

I decided to combine my interests by coding a Street Dance event management application. I decided upon this as it would be something I could be proud of as it is the perfect joining between Street Dance (a hobby of mine) and Software Development. As well as that, it could be something my community in the Street Dance scene could utilise. To outline my idea: the Street Dance event management application would allow dancers to see events (such as battles and jams) in Sydney, express their interest, or create events of their own. It would include some other features as well such as searching events by dance style, commenting on events, joining events etc. 

**Challenges**

Since this project was for an assignment, I had to meet a lot of requirements to ensure my application met the set out parameters - this was definitely a challenge for me. Firstly, it had to use the Ruby on Rails framework (obviously) but reading the rest of requirements made me feel quite overwhelmed. To combat this challenge, I tried to work on each requirement one by one to ensure I was meeting the project requirements. However, I still submitted the assignment without meeting the user authentication requirements due to time constraint and so currently, users only login via their username:


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sf74gx0dl3j0m9srsm4g.png)

Obviously, I am quite upset at the fact that I wasn't able to meet all the project requirements by the due date, however, I am confident that I will be able to get these features up in running soon!

Another issue I had encountered was the fact that I didn't create all my models in the beginning and instead created them one by one as I required them. This was an issue as it made it harder to wrap my head around the different relationships I wanted each model to have with one another and so it definitely took more mental effort to decipher what I originally wanted to do. However, after some work and a discussion with my mentor, I was able to establish the relationships between various models and get the application working as expected!

Some of my models and their relationships:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/151asc39p8xj9t7ieqk3.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n1y7gtig4bvh1v3p5dy6.png)


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k1udmehda07380g5wqjx.png)

**My Favourite Part**

My favourite part was definitely working on the routes. Whilst I was working on the routes, I was rewatching previous lectures where my mentor discussed how to create them and where each route leads. I definitely enjoyed creating every single route and being able to observe how my application was becoming more cohesive with each coding session. I definitely became more excited with each route I created!


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nvida279krexs8anr9lj.png)

**Conclusion**

Overall, working on this application has definitely made me excited to learn more about software development and to be able to create a full stack web application over the Summer! It finally feels as though I am getting better!