Berlin Architectural Network is a Ruby on Rails Application built for the homonymous Meetup group, which I've created in 2017. Since then, it has attracted hundreds of architecture lovers who come together to support each other through collaboration and networked learning.
Together with my team from the Bootcamp at Le Wagon, we've built this web application from scratch with Ruby, HTML, SCSS and JavaScript.
Building a social platform as the final project in only 2 week's time, required a good understanding of database architecture, overall enjoyable user experience as well as skills on time and product management.
View Live
The purpose of this project is to support architects, who are new to Berlin, on getting into the city's architecture scene and give the Meetup group an online presence.
The design process had 3 major phases:
After defining each step of the user journey along with a Figma prototype, we designed the database schema and built the corresponding models on Rails. At this point we introduced Devise for authentication and Pundit for authorization, so that the user could sign up and become a member of the community.
In the second phase the user should be able to visit an office's page and check out a member's activity. For the database seeding, we used JSON due to its lightweight format. We also worked with services such as Cloudinary to host and upload images and Mapbox to display the location of the offices.
The last phase enabled the user to RSVP to an event, review it and chat with a member. AJAX allowed new content, such as comments and rsvps, to be displayed without reloading the page. For the chat, we've built a bidirectional Websocket connection combined with Action Cable for real-time messaging.
Github helped us keep track of our progress and to collaborate as a team.
Ruby on Rails, as an MVC framework, enabled us to build this web application in only 2 week's time. So that I've understood the advantages behind the concept "convention over configuration".
We've also used PostgreSQL as a relational database combined with Heroku to deploy our app on a production environment.
The process was not always smooth and we had some bumps on the way that helped us grow as junior developers.
The database was a highlight of this project because of its complexity. There were a total of 12 models.
Something unusual about this schema is the comments table that allows foreign keys to be nullified. This decision was made in order to reduce the number of tables. Even though this is valid and works, it's something I would rather break into smaller tables in the future, for the sake of simplicity.
It was nonetheless an opportunity to try and see a different solution in action.
Github not only allowed us to collaborate as a team but also to review and optimize our code on every pull request.
When working together on one feature, I've practiced pair programming with my colleagues. I’ve also learned how to deal with empty files and broken heads on github.
As an architect, I've explored the benefits of agile management. This experience guided me throughout the process of building this app.
We've implemented scrum rituals such as daily standups as well as a kanban board on trello, which enabled us to be on time and even build one extra feature.
At the moment we're still working on the app.
It's release and announcement to the Meetup group is scheduled for January 2021.