Inspired by the established WCR website, this app maintains a consistent visual identity by adopting the site's color scheme and title font, Rokkitt from Material Design 3. This design choice mirrors the website’s look and feel, ensuring brand continuity across platforms.
Built with modern technologies—Angular 19, Ionic, and CapacitorJS—and fully Dockerized, the mobile application adheres to Material Design 3 principles for a clean and responsive interface. It features engaging interactive 3D Spline animations and intuitive tabbed authentication flows for Sign Up and Login. Leveraging Angular Material components, the app delivers a seamless cross-platform experience on both iOS and Android devices.
- Features
- Technologies & Dependencies
- Setup Instructions
- Implementation Details
- Dependency Rationale
- Simplification Techniques
- Known Issues & Limitations
- Resources & Credits
An engaging 3D animation integrated on the Login & Signup page using Spline.
- Sign Up Tab: New user registration with Google and Facebook SSO styled buttons.
- Login Tab: Existing user authentication with Google and Facebook SSO styled buttons.
Simplified integration for user authentication via provided Swagger endpoints.
Adheres to Material Design 3 guidelines for a clean, responsive UI.
Ensured through Ionic and CapacitorJS for seamless performance on both iOS and Android.
Dockerized environment for easy deployment and consistency across different setups.
- Angular 19: Application framework.
- Angular Material 19: UI components following Material Design 3 guidelines.
- Ionic & CapacitorJS: Cross-platform mobile compatibility.
- Spline: For creating interactive 3D web animations.
- Docker: Containerization for deployment.
- Swagger JSON Integration: For simplified user authentication APIs.
- Node.js (version 16 or above)
- Angular CLI (v18+)
- Docker
- Git
- Clone the Repository:
git clone https://github.com/homayoun43salimi/wcr-challenge-frontend.git cd wcr-challenge-frontend
- Build the Docker Image of Backend:
- Navigate to the Backend folder within the cloned repository.
docker build -t wcr-challenge . - Run the Image:
docker run -d -p 3030:3030 wcr-challenge
- Build the Docker Image of Frontend:
- Navigate to the Frontend folder within the cloned repository.
npm run build
docker build -t wcr-challenge-fe . - Run the Image:
docker run --name wcr-challenge-fe -p 80:80 --network bridge wcr-challenge-fe
Find Back-end in : https://github.com/WECANRACE/wcr-challenge-backend
API KEY: I'M_A_FRONTEND_DEVELOPER_AND_I_WANT_TO_JOIN_THE_TEAM
Email: new_frontend_developer@wecanrace.it
Password: A_TUTTO_GAS_!
Open http://localhost:80 in your browser to test the app.
cd your-frontend-path
ng serveThen visit http://localhost:4200 to test your app
⚠️ Warning: Ensure the back-end Docker container is running before starting the front-end container to guarantee proper functionality.
The animation component (located in src/app/components.ts) uses Spline’s API to embed and control a 3D interactive animation on the Welcome page.
Two tabs: "Sign Up" and "Login". Each tab contains a form for user input and Google/Facebook SSO styled buttons. Calls to the Swagger API for authentication are handled by AuthService in src/app/login/login.component.ts & src/app/signup/signup.component.ts.
The AuthService abstracts HTTP calls to the Swagger API endpoints, managing login and signup logic. This includes simplified error handling and basic form validation for a streamlined user experience.
Provide a structured framework and pre-built UI components adhering to Material Design 3, reducing the need for custom UI work.
Facilitate cross-platform mobile development, allowing the Angular web app to run natively on iOS and Android.
Enhances the user experience with modern, interactive 3D animations without requiring heavy custom code.
Ensures consistency across development, testing, and production environments, simplifying deployment.
Integrated Swagger APIs directly using Angular’s HTTP client, reducing complexity in API integration.
Used Ionic components and CapacitorJS to streamline mobile compatibility, avoiding the need for separate codebases.
Currently non-functional stubs; they are styled to match Google and Facebook branding but do not perform actual OAuth flows.
Simplified; advanced error handling, token management, and security considerations are minimal.
May vary across devices, particularly on older models with limited hardware capabilities.
https://www.figma.com/design/cZF1amxpx8sVcWnkg3rODq/Untitled?node-id=0-1&t=g7Zjmuc08hNeW7WI-1
https://chatgpt.com/share/6788c31d-6aa0-8006-a09d-08b38fe67647 https://gemini.google.com/app/3cabbe085f7ac9ac https://gemini.google.com/app/a14f75c619fcc32c https://gemini.google.com/app/40e3606adcafa955 https://gemini.google.com/app/dd6a16600e265f1e