- SYNDEO, WHERE LEARNING BECOMES FUN.
Login and registration | Library | Translations |
---|---|---|
Platform users can register and log in. | Each user can create their own articles and search for them on the platform. | Users can translate words as they read. |
Vocabulary | Flashcards | Export |
---|---|---|
Each user can save words in their own vocabulary. | Vocabulary review through flashcards. | Possibility to export the vocabulary to PDF. |
SYNDEO was part of our Information System Engineering Thesis (Proyecto Final de Grado in spanish) at the Universidad Tecnológica Nacional - U.T.N. (in english: National Technological University), in Villa María, Córdoba, Argentina.
DreamTeam™ (our team name) was born in 2017 in the interior of Córdoba, more precisely in the town of Villa María. This team was maintained throughout our passage through the U.T.N.
Reaching the end of this cycle, and to put a brooch at the height of our passage through this house of studies, is why SYNDEO is born. SYNDEO was developed by:
- Pértile, Franco Giuliano
- Rotondaro, Lucas Daniel
- Brambilla, Roman Darío
SYNDEO consists of two part:
- The application itself. (This repository)
- Project Management Document. You can find the PDF in this repo as well, or clicking Here!
Disclaimer: Since the project took place in an argentinean university, the whole project is in spanish
The project managemt document is based in the PMBOK.
The Project Management Body of Knowledge (PMBOK) is a set of standard terminology and guidelines (a body of knowledge) for project management. The body of knowledge evolves over time and is presented in A Guide to the Project Management Body of Knowledge (the Guide to the PMBOK or the Guide), a book whose sixth edition was released in 2017. The Guide is a document resulting from work overseen by the Project Management Institute (PMI), which offers the CAPM and PMP certifications.
Much of the PMBOK Guide is unique to project management such as critical path method and work breakdown structure (WBS). The PMBOK Guide also overlaps with general management regarding planning, organising, staffing, executing and controlling the operations of an organisation. Other management disciplines which overlap with the PMBOK Guide include financial forecasting, organisational behaviour, management science, budgeting and other planning methods. Wikipedia
During our career, the project was developed in a private repository, and now that we finished our careers, we decided to open source our project, so everyone can see our work, since one of SYNDEO's goal is to:
Where it doesn't matter if you are reading an spanish book, russian, or english, as long as you enjoy the reading experience 🤗📖.
In our private repository, we have a better environment, but we decided to leave the most essential to a have a quick setup for new outcomers.
Use the package manager pipenv to install all the requirements.
Steps:
- Install dependencies
pipenv shell
pipenv install
- Apply migrations
python manage.py migrate
- Create a Language and Account
python manage.py shell
from base.models import Idioma, Account
nuevo_idioma= Idioma(name="Inglés")
nuevo_idioma.save()
nuevo_idioma= Idioma(name="Español")
nuevo_idioma.save()
super_user = Account(is_admin=True,is_staff=True,is_superuser=True,is_active=True,first_name="syndeo",email="syndeo@email.com",password="123456")
super_user.save()
- Add a valid password for your superuser
python manage.py changepassword syndeo@email.com
#Follow the django instructions
- Run it!
python manage.py runserver
This project uses the IBM Watson API, to translate and generate the audio.
With and empty database, the app does not know witch languages are available, feel free to add the following with the Django Admin:
The following are the languages that were tested by us, but the API supports up to +40 languages.
Note: Add them in spanish, not in english, for instance,add Ruso and not Russian
- Ruso (Russian)
- Alemán (German)
- Italiano (Italian)
- Holandés (Dutch)
- Inglés (English)
- Español (Spanish)
- Francés (French)
- Portugues (Portuguese)
How it should look like in your admin panel:
This application uses three API keys:
- IBM Watson: For the translation and audio generation.
- The variable that contains the apikey is in the
texto_views.py
file, and the variable name isapikey
, replace it with yours, otherwise, you won't get the translation nor audio generation.
- The variable that contains the apikey is in the
- Amazon Web Services S3: for store the images and audio in production, although, this is not necessary, because that funtionality is commented, and the application uses PostgreSQL by default.
- Feel free to change it in
setting.py
, the variable name areAWS_S3_ACCESS_KEY_ID
andAWS_S3_SECRET_ACCESS_KEY
, and uncomment them as well.
- Feel free to change it in
- Gmail Account: the application uses a Gmail account to activate/restore accounts and password, so if you want to have these functions, add an valid/active gmail account, in
setting.py
, and the variables name areEMAIL_HOST_USER
andEMAIL_HOST_PASSWORD
, otherwise, you will have to active your account manually through the django admin panel, or remove these functions.
If you want to run or edit the frontend with react, you can do the following
cd frontend
npm install
npm start
On another terminal, to run the backend, enter the following command:
python manage.py runserver
Then if you want build the frontend, and to be reflected in django, you have to enter the following command:
cd frontend
npm build
Now you'll have all your static files served by django, and a build ready to deploy on heroku for instance.
The demo is divided into 4 parts
part1.mp4
part2.mp4
part3.mp4
part4.mp4
- Django The web framework for perfectionists with deadlines.
- Django Rest Framework Web APIs for Django. 🎸
- React A JavaScript library for building user interfaces.
- PostgreSQL The world's most advanced open source database.
- IBM Watson Python SDK 🐍 Client library to use the IBM Watson services in Python and available in pip as watson-developer-cloud.
- react-bootstrap-table2 Next Generation of react-bootstrap-table.
- react-flashcard This is a small package to help you fast integrate a Flashcard component to your project.
- react-infinite-scroll-component An awesome Infinite Scroll component in react.
- react-confetti Confetti without the cleanup.
- react-scroll React scroll component.
- react-sweet-progress A way to quickly add a progress bar to react app 🌈.
- react-share Social media share buttons and share counts for React.
- djoser REST implementation of Django authentication system.
- yup Dead simple Object schema validation.
- djangorestframework-simplejwt A JSON Web Token authentication plugin for the Django REST Framework.
- django-simple-history Store model history and view/revert changes from admin site.
Closures is provided under the MIT License.
MIT License
Copyright (c) 2022 Pértile Franco Giuliano
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.