- ST0258, Roller Tempo
- Juan David Valencia Torres, jdvalencit@eafit.edu.co
- Julian Giraldo Perez, jgiraldop@eafit.edu.co
- Kevin Mauricio Loaiza Arango, kmloaizaa@eafit.edu.co
- David José Cardona Nieves, djcardonan@eafit.edu.co
- Daniel Arango Hoyos, darangoh@eafit.edu.co
Roller Tempo is a complete implementation of a turn management service for amusement parks. It was developed using Go + Echo (Framework) for the API management and Python + Django (Framework) for the desktop and mobile applications. It was developed following coding best practices as well as SOLID principles.
This project was developed as part of a course work in conjunction with the company Globant (who acted as advisors, supervisors and evaluators). It was carried out with the intention of putting into practice concepts oriented towards fullstack development.
Generally speaking, Roller Tempo has as main components:
-
For the server:
- Programming Language: Golang.
- Framework: Echo.
- Database: PostgreSQL.
- ORM: Gorm.
-
For the client:
- Programming Language: Python.
- Framework: Django.
- Rendering: Django Templates.
We seek to manage a concise structure for the API design, with the following components:
- Repositories, where to perform the management of CRUD operations with the system models (this was done using Gorm ORM).
- Services, where the business logic is handled (Required functions to be offered to whoever consumes the api).
- Controllers, responsible for the correct handling of requests and their responses.
-
Golang: Roller Tempo requires that you have Go language installed on your system to build and run the application.
-
Python: It is also necessary that you have Python 3 installed on your system so the client can run properly.
-
Docker-compose: You need to have docker-compose installed since the database is run through containers.
First, you need to clone the repository from GitHub. To do this, you can open a terminal and run the following command:
git clone https://github.com/kevinloaiza12/roller-tempo.git
cd docker
./service.sh up
cd app/server
go run .
cd app/client
Python manage.py runserver
The objective of Roller Tempo is to put development concepts into practice as well as to apply design patterns, architecture principles, and other relevant concepts.
Here are some of the aspects that could be considered in the future for the implementation of the project:
- Authentication + User validation.
- Session management.
- Turn notification system.
These features are open to public intention to contribute to open-source development.
Roller Tempo is under free open source MIT License.
Join this project and provide assistance by:
- Checking out the list of open issues where Roller Tempo could need help.
- If you need new features, please open a new issue or start a discussion.
Feel free to contact me if you have any questions or contributions to make to the project.