Steps to build a Web application - Prathyusha1993/countries-rest-api GitHub Wiki
To build any production ready web applications, we have to follow some steps listed below
Requirements clarification
Before we start building, we need to get as much clarity as possible from designers and product managers on the requirements.
-
Design clarification
- Navigate through all the designs to get overall picture
- Questions to be asked
- Only web or mobile responsive?
- Dark mode / light mode
- Error case scenarios
- User action error
- Business logic error
- Network error
- User experience improvements
-
API related questions
- API documentation complete and ready?
- REST or GraphQL?
- All HTTP methods clearly documented?
- Error case scenarios clearly documented?
- etc
Implementation steps
Once there is clarity in requirements then follow the below steps to implement
-
Technology choices - get a clarity on what technology should be used and why
- React JS
- Fast development with reusable UI components
- Redux
- Better state management
- Sass
- Clean, easy and less CSS
- React JS
-
Implementation
- Create react app
- Use some template builders to bootstrap the app with necessary artifacts
- Components design
- Identify components
- Go through designs and identify all the components to write code
- Identify state vs stateless components
- Identify props to be passed to the components
- Identify components
- Write code
- Iteratively write code and improve it with code reviews
- Write reusable components and functions
- Add styling
- Style the components as per the designs
- Run the code and verify
- Logging
- Call logging api to store in server
- Tests
- Unit tests
- Integration tests
- Deploy to production
- Verify if everything is fine
- Bugs
- If any bugs, fix them
- Create react app
Work Breakdown
Breakdown the work into smaller stories to be worked to collaborate with the team. In this phase, we go through low level details to make sure we have all the necessary info to build the application, and find out proactively if there are any challenges.
-
Components
- Home Page
- Header bar
- Where in the world
- Theme switcher
- Menu bar
- Search box
- Filter by region
- Body
- Country cards
- Flag
- Details
- Name
- Population
- Region
- Capital
- Country cards
- Header bar
- Country specific page
- Header bar
- Where in the world
- Theme switcher
- Navigation bar
- Back button
- Body Section
- Left Section
- Flag
- Right Section
- Header
- Country Name
- Details
- Column 1
- Details 1
- Column 2
- Details 2
- Column 1
- More Details
- Border Countries
- List of country name icons
- Border Countries
- Header
- Left Section
- Header bar
- Home Page
-
Interactions
- Home Page
- Theme Switcher
- Toggle between light and dark modes
- Search
- Search for a specific country based on search text
- Display only those matching countries
- Filter by region
- On Select, display countries related to the region
- Country card click
- Navigate to the country specific page
- Theme Switcher
- Country specific page
- Back button
- Navigate to home page
- Border countries
- Icon
- On click, navigate to particular country details page
- Icon
- Back button
- Home Page
-
Service Layer
- Get all countries
- Get country details