Kraftflix - An Angular SPA
Kraftflix - An Angular SPA
Kraftflix is a single-page application (SPA) developed in Angular, designed to allow movie enthusiasts to explore films, learn about directors and genres, and create a personal profile to save their favorite movies. The app is connected to an existing RESTful API developed in a previous project (Kraftflix-API). The user and movie data are stored in a personally created MongoDB database.
This project covers the development of the front end using Angular, alongside creating comprehensive documentation and using Agile methodologies (Kanban, user stories, and story points).
The Kraftflix Angular App is a user-friendly and responsive application for film lovers. Users can log in, browse movies, view detailed information about a single movie, directors and genres, and create a user profile to save their favorite films. The app interacts with an existing server-side RESTful API to retrieve data and presents it in an Angular-based interface. This SPA ensures accessibility and a consistent experience across all devices.
· Users can either log in or register a new account.
· Displays all movies available in the MongoDB database retrieved from the API.
· Each movie is displayed on a separate Angular Material Card.
· The user can use buttons on the single movie cards to display detailed views with additional information about the desired movie.
· Each card contains three buttons:
1. Director - Provides information about the director of the selected movie.
2. Genre - Shows details about the genre of the selected movie.
3. Synopsis - Displays the plot of the selected movie.
· Users can create a profile with personal details and save their favorite movies.
· After registering, users can edit their profile information and delete their profile.
· The app utilizes Angular Routing to navigate between the different views.
· The frontend framework for building the SPA.
· Used to create a responsive and attractive UI. Angular Material provides pre-built UI components that enhance the user experience.
· Used as the primary language for Angular development.
· For managing asynchronous data streams and handling errors in API calls.
· used for in-app navigation with URL paths between the different Views
· For environment setup and dependency management.
· Facilitates project setup and management.
· For App hosting.
· for Agile project management
· Kanban Board used to organize tasks with user stories and track progress using story points.
· For generating inline code documentation.
· For environment setup and dependency management.
· Root component of the app.
· App welcome page.
· User registration form.
· User login form.
· Displays movie info cards.
· Shows director info.
· Shows genre info.
· Shows movie plot.
· Navigation bar of the app.
· User profile page.
· User data update form.
The project includes TypeDoc for code documentation. All documentation files are available in the docs folder in the GitHub Repository.
For Agile Project Management, a Kanban Board (Trello) was used . Tasks were organized as User Stories and estimated with Story Points. Tasks were categorized as follows:
· To Do - Tasks pending completion.
· In Progress - Tasks currently being worked on.
· Done - Completed tasks.