EA Take-home Testing - Game Review Site 
Live Demo
https://ea-review-demo.viz.software/posts
Deployment Guide
Requirements
Build-time
- Docker (>= 17.12.0, recommended: 18.09.0)
- Docker Compose (>= 1.21.0, recommended: 1.23.1)
- GNU Make
Run-time
Running in local machine
Just run with make up.
Build the Docker images and run on another host
- run
make
- copy generated images from
images directory to the remote host
- use
docker load to load these images
- run both containers within the same Docker network
Pull from Docker Hub
You may pull images from vizv/ea-review
- Use tag
ui-latest or ui-{tagref} (such as ui-1.0.0) for front-end
- Use tag
api-latest or api-{tagref} (such as api-1.0.0) for back-end
Note
- Source for front-end can be found in
ui directory
- Source for back-end can be found in
api directory
- All Docker-related files (Dockerfile, Docker Compose file, and other supported files) can be found in
docker directory
- As requested, a in-memory database (SQLite) will start along with the API server, and fake data will be generated for demo purpose.
Acceptance Criteria
-
A blog post will show a title, article text (plain text) and an author name
-
Comments are made on blog posts and show comment text (plain text) and an author name
Non-functional Requirements
-
The code should be production ready and could be supported by a team
-
The application must have a build system
-
The application build should be built or compiled in a docker container
-
The application build should produce a docker container image as an artifact
-
The application should not have any runtime dependencies
Testing
Just run make test.
Note: only E2E testing is currectly available.
Tasks
Stage 0 - Preparation
-
Clarify requirements
-
Define data schema
-
Design API for the Stage 1
-
Skeleton for front-end and back-end
Stage 1 - MVP
-
Feature: post display
-
View for post display with mocked data
-
Endpoint for post display with mocked data
-
Integration of post display
-
Feature: post listing
-
View for post listing with mocked data
-
Endpoint for post listing with mocked data
-
Integration of post listing
-
Database integration & mocking
-
E2E testing
- Update data schema for the Stage 2
- Design API for the Stage 2
Stage 2 - Improvements
- Feature: post listing & authorization
- Authentication integration
- View for login
- Endpoint for login
- Authorization integration
- Feature: post creation
- View for post creation
- Endpoint for post creation
- Feature: post editing
- View for post editing
- Endpoint for post editing
- Feature: comment creation
- View for comment creation
- Endpoint for comment creation
- Feature: comment editing
- View for comment editing
- Endpoint for comment editing
- Feature: comment deletion
- Feature: post deletion
- Design API for the Stage 3
Stage 3 - Bonus
- Feature: registration
- View for registration
- Endpoint for registration
- Unit tests
- Code Coverage
- Integration Test
- Continuous Deployment