portrait of eva

Hello, I'm Eva

I'm working as a full-stack web developer in the e-commerce sector. For scripts I'm writing at work I primarily use TypeScript and Node.js.
I love to keep learning and evolving. Currently I'm discovering PHP to be more broadly positioned at the server-side.

More about me arrow_downward

About

code

I am a certified web developer

I completed an eight-month full-stack web development course, with the guidance of a personal tutor and mentor. Amongst others I built a Native Chat App, as well as a Full-Stack Project using the MERN stack.

emoji_objects

I am a lifelong learner

Learning to code was on my bucket list since I dipped into the world of tech during my first job as a content editor. I enjoy working on intellectually challenging tasks and factoring new technologies into my daily work.

supervisor_account

I like to work with people

It makes me happy to co-create and implement new concepts together with other people. Ten years of experience in the retail industry help me to take a user-centric perspective and act solution-oriented.

school

I have a Master's degree

My academic background helps me to independently search and critically evaluate information. It also brings me in a good position to think outside the box when facing technical challenges.

nature_people

Besides Coding

I like spending time outdoors with my family, italian food, opera evenings, and podcasts about Harry Potter.

javascript typescript html css sass bootstrap jquery git node mongodb react aws serverless firebase

Work

sorting hat app

Sorting Hat App

Responsive SPA built with React, React Router and Tailwind CSS. It gets data from a Serverless Sorting Service I built before. The project mimics the sorting ceremony that takes place for new students at Hogwarts. Users can click a button to initiate the sorting process and will be randomly assigned to one of the four Hogwarts houses. They are directed to their corresponding house view and meet their new housemates.

screenshot of myflix movie list screen

MyFlix Movie App

A web app that provides users with access to information about movies, directors, and genres. Users can sign up, update personal data, and create a list of favorites. Server-side and client-side were developed using the MERN stack.

Server-Side

I created a RESTful API using Node.js and Express, that interacts with a non-relational database (MongoDB). The API can be accessed via commonly used HTTP methods like GET or POST. To retrieve data from and store data in the database, CRUD methods are used. The API provides movie information in JSON format.

arrow_right View endpoints

To test the API, I used Postman. I also included user authentication and authorization code in the form of basic HTTP authentication and JWT authentication.

Client-Side

After completing the API, I started to build the interface users would need when making requests to, and receiving responses from, the server-side. It is a single-page, responsive application, developed with React and React-Redux. It provides several interface views, including, but not limited to, a main view (shows a list of all movies), single movie view (shows data about a single movie and allows users to add the movie to their list of favorites), a login view, a registration view and a profile view (where users can update their user data and list of favorites).

Conclusion

This was both my favorite and most challenging project. I have enjoyed building the API and working with database structures. I also quickly became familiar with using the terminal. Developing the client-side, it took me a while to understand how React and Redux work and how to achieve the desired results. But with the help of my great tutor and after a pair-programming session with an experienced developer, I could conquer that mountain.

screenshots of chatapp start and chat screens

Native Chat App

A chat app for mobile devices built with React-Native. It provides users with a chat interface where they can send/receive text messages and images as well as share their location.

Technical Data

I used Expo.io to develop the app. It is optimized for both Android and iOS devices. The chat interface and functionallity I created using the Gifted Chat library.

To store the chat messages, I used the Google Firestore Database. Images are stored in Firebase Cloud Storage. To make the chat conversations available offline , I used asyncStorage to store them locally. When users are offline, they can’t create new messages (using Gifted Chat’s renderInputToolbar prop). I used Google Firebase authentication to authenticate users anonymously.

arrow_right View project setup manual

Error handling

During development, I ran into a few difficulties, often caused by outdated combinations of packages or dependencies. Amongst others, I had to research the correct version of NetInfo to get the app up and running and also had to install Base64 encoder/decoder to handle 'atob()' and 'botoa()' issues.

Conclusion

This chat app was the final project for my full-stack web development bootcamp. Besides all difficulties, I realized how I grew in handling problems and solving bugs independently. I improved in figuring out what search terms to use when trying to find an answer with Google. I got a solid grasp of when it might help to temporary set a console.log() to know what’s going on.

Read more
screenshot of meetup start screen

Meetup App

A serverless, progressive web app (PWA) built with React using a test-driven development technique (TDD). The app uses the Meetup API to fetch upcoming events for a selected city, and OAuth2 authentication flow. For the authorization server it uses AWS Lambda. Alerts for users are created by using an OOP approach. A service worker allows the app to work offline. The recharts library is used to visualize data with a scatter graph and a pie chart.

screenshot of portfolio home screen

Portfolio Website

A responsive onepager to showcase my professional portfolio, designed following a mobile-first approach. It is built with pure HTML, CSS (grid, flexbox) and some snippets of Javascript to toggle a hamburger menu and read-more buttons. The CSS code uses native variables for repetitive values. A postprocessor was used to improve browser support.

screenshot of pokedex list with open modal

Pokedex App

A small web app built with Javascript, HTML, CSS, jQuery, and Bootstrap framework. Users can search through a pokemon collection that is loading from an external API. Details can be displayed in a modal by clicking on a pokemon's name. The code has been formatted according to ESLint rules.

screenshot of quizapp start screen

Quiz App

A basic single-page app to practice Angular framework and TypeScript. The application presents users with multiple choice questions on various topics. Once users have answered all the questions, their results will be displayed. It uses Angular Material for the UI layout and Angular Flex Layout Module to ensure responsibility.

screenshot of custom todo list screen

Todo App

Last but not least – an absolute classic hit: A basic todo-list app to practice the Vue.js framework. A user can add and delete todos, edit them and mark them as completed. Vue Material is incorporated for its visual design.

Contact

Eva Greiner-Anzenbacher
Berlin, Germany