Amity
Amity is a mobile-first web app designed to make planning and organizing activities with friends effortless.

Overview & Scope
Amity was developed as a third-semester group project by three Master’s students. The aim was to design and build a mobile-first web application that supports friends in planning and coordinating activities more easily. The project explored the full stack from frontend to backend. The outcome is a user-friendly platform that combines practical functionality with features that strengthen social bonds.
Tools & Technologies
Angular · Angular Material · Bootstrap · TypeScript · Node.js · NestJS · TypeORM · GitLab · Jira · Figma
Categories
Duration
September 2024 – January 2025
The Problem
Even with countless messaging and calendar tools available, many friend groups lack a simple way to organize activities together. Plans get scattered across chats, birthdays are easily forgotten, and staying in touch often depends on individual effort. Amity addresses this problem by offering a centralized, social hub for planning, reminders, and lightweight interactions designed specifically for friends.
The App
At its core, Amity is a shared calendar that makes group planning transparent and straightforward. Users can create and share events, get birthday reminders, send quick check-ins, and even make playful predictions for events together. By combining practical tools with lighthearted features, Amity turns everyday coordination into an experience that keeps friendships active beyond the usual group chat.


Key Features
- Shared calendar for group activity planning
- Event creation and sharing with selected friends
- Birthday reminders to never miss important dates
- Quick check-ins via push notifications
- Shared prediction lists for fun group challenges
- Progressive Web App functionality for mobile installation
Target Users
Amity is designed for friend groups who want to spend more time together and stay better organized. From busy students juggling schedules to longtime friends living in different cities, the app supports anyone who wants an easier way to plan activities, remember important dates, and keep in touch through playful interactions.
Backend & Database
Amity’s backend was built with Node.js and NestJS, building on experience from the previous project Bevry. The setup was supported by TypeORM for database management, JWT for authentication, and bcrypt for secure password handling.
A key challenge was managing the many dependencies between classes and entities, which required careful planning of the overall structure. Recursive errors and cascade settings introduced additional complexity but were resolved through iterative debugging. Push notifications added another layer of difficulty, since they needed to be sent from one device and reliably received on another.
A database diagram was prepared to show the relationships between entities and how data is organized.

To keep development smooth, the backend was planned one step ahead of the frontend whenever possible, ensuring that new features could be integrated without blocking progress. The result is a stable foundation that supports Amity’s social and interactive features.
Design
Amity’s design balances clarity with a friendly, approachable look. The interface focuses on simplicity, making calendars, events, and reminders easy to navigate, while a more playful design was used to promote the app, like posters and stickers. Alongside the UI mockups, a logo was created to give Amity a recognizable identity outside the app.
Logo & Design Elements


Color Palette

Mockups
The mockups were created in Figma, based on Angular Material and Bootstrap components, which were used in the final product.

Learnings
This project provided extensive hands-on experience across both frontend and backend development. It was the first time I actively worked on the backend, offering deeper insight into how frontend and backend communicate and how processes operate behind the scenes. Observing how all components come together to create a functional application was particularly valuable.
Working with Angular for the first time was initially challenging, as it required adapting to the framework’s structure and workflow. Once I grew more familiar with Angular and backend development,I could independently implement features from start to finish. That experience significantly strengthened my understanding and confidence of modern web application development.

