weclaw1 / aws_tsp Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
Spark is a micro framework for creating web services. It will be used for creating REST API.
Dependency can be found here:
https://mvnrepository.com/artifact/com.sparkjava/spark-core/2.5.5
Implement REST API from the project diagram.
Documentation can be found here - https://github.com/iwongu/sqlite3pp
Create implementation for SQLiteDAO.
I already added SQLite and a nice wrapper called sqlite3pp.
For creating documentation you can use one of the following projects:
https://github.com/lord/slate
http://swagger.io/
http://www.raml.org/
Learn about designing RESTful APIs at: http://www.restapitutorial.com/
API should use HTTP methods GET, POST, PUT and DELETE
Create tests for SQLiteDAO, REST Api and JsonConverter.
You can check how to write tests in tests.cpp in test folder.
Implement frontend which will communicate with the rest apu on the server.
I'm leaving the choice of libraries up to you.
If you want any recommendations or help leave me a message.
Create AbstractDAO for saving results
AbstractDAO has to be created first
Create task receiver. Use ZeroMQ as server with socket type with socket type REP. Listen on port 9999.
Travis is a CI service that has good integration with github and is free for public projects.
It will build and test push requests.
TSPResultAnalyzer should check if total distance is smaller than specified distance. It would be nice if total distance could be selected automatically based on the received graph.
Implement Abstract Validator Factory and Json10Validator from the diagram. You also need to define the JSON format for task data.
Documentation for library can be found here: https://github.com/nlohmann/json
Implement methods fromJson and toJson for Task and TaskResult in task.h, you will also need to implement those methods for WeightedGraph in weightedgraph.h.
JsonConverter should also check if graph is valid.
Create documentation for using git and project workflow - creating branches and making pull requests
You can use .gitignore files from: https://github.com/github/gitignore
Java project should use Gradle and Java gitignore files.
C++ project should use CMake and C++ gitignore.
Define protobuf task format, which will be shared between the java and c++ programs.
Create general architecture diagram, UML diagram should be created later.
Task sender uses ZeroMQ for sending messages. Use ZeroMQ in client mode with REQ socket type on port 9999.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.