This readme provides you a overview of the whole project and a guideline to how start the project using Docker inside a vagrant virtual machine.
Title: Documentation for our LSD project
Authors:
- Andreas Styltsvig (cph-as283)
- Cherry Rose Semeña (cph-cs241)
- Diana Strele (cph-ds126)
- Mahnaz Karimi (cph-mk406)
- Mikkel Ziemer Højbjerg Jensen (cph-mj496)
Date: 25/10/2018
Assignment reference: LSD Project Description
Github repositories for this project: https://github.com/ProjectHackernewsGroup04
- A link to the front-page of you Hacker News Clone: http://46.101.43.21:3000/
- A link to the API for the simulator: http://46.101.43.21:5001/
- A link to the handover documentation for the operator group: same page
See here: API Documentation
To start the project, you would need all repositories in order to get the project to run.
-
Cloning the documentation repo
$ git clone https://github.com/ProjectHackernewsGroup04/Documentation.git -
Cloning rest of repos with this script
$ sh Documentation/scripts/gitclone.sh -
Profit
You have to install following:
- Vagrant virtual machine
- Docker
- Read and understand https://github.com/datsoftlyngby/soft2018fall-lsd-teaching-material/blob/master/lecture_notes/03-Containers%20and%20VMs.ipynb
- Install
- Profit
$ cd Ops/vm/$ vagrant up
cd Ops/vm/vagrant upvagrant ssh- profit
- Make sure you have docker on your machine
cdinto the cloned project- Write
docker-compose up -dto run the entire system.
This starts up a rabbitmq instance, two http-api applications, one to accept student_tester.py requests (helge-api) and one for the frontend to use (backend), a frontend project and a consumer for the rabbitmq.
Goto http://localhost:9000/newest
Enjoy
In situations that you encountered some issues with our project, please make an open issue on its respective repository, and we will handle that the soonest.
List of repositories and its purpose:
- Frontend - the web interface that the user can interact with, all the not yet implemented features will display "Not yet implemented" which are most likely not prioritized in the requirements. You can find the available features in the API documentation
- Backend - here, all the logics are handled and the one that communicates with the database. You can test against the backend by
curlhttp://46.101.43.21:5000/api/ , use the API documentation for reference. - Helge-API - this is especially made to handle Helge's requirements such as
/latest,/postand/status, see the description here. You can test against the helge-api bycurlhttp://46.101.43.21:5001/api/ - Ops - Ops is responsible for building all the components of the application inside a virtual machine.
- 400 - customized errors such as "bad login", or errors caught from the backend
- 500 - Backend error, usually occurs when it loses connection with the Database or when backend is down.
- 404 - "Not Found", wrong url.