/Syndeo

SYNDEO a platform where you enjoy a pleasant and uninterrupted reading experience.

Primary LanguageJavaScriptMIT LicenseMIT

SYNDEO, WHERE LEARNING BECOMES FUN.


What is Syndeo all about?


SYNDEO is a web platform oriented to a certain sector of the population, which we define as "self-taught". It is oriented to satisfy the needs related to the linguistic reading and learning of different languages, assuming that the potential user already possesses the necessary knowledge of the language. different languages, assuming that the potential user already has some basic knowledge of the language to be reinforced. basic knowledge of the language to be reinforced. The user will be able to upload the texts or articles he/she wishes to read, with the possibility of adding videos to facilitate their study. videos that facilitate their study, providing an auditory component. On the other hand, there will be a section for On the other hand, there is a section to "review vocabulary", where the application will provide different methodologies to will provide you with different methodologies to carry out this review. Finally, you will have a section that provides you with different statistics regarding your progress.
                   

Python Django DjangoREST React Postgres AWS Heroku Licence

Table of contents

SYNDEO Features

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.

Why SYNDEO was born?

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.

About US

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.

What is 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


We decided to open source SYNDEO


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:

Enjoy a pleasant and uninterrupted reading experience.

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.

Execute in your editor

Use the package manager pipenv to install all the requirements.

Steps:

  1. Install dependencies
pipenv shell
pipenv install
  1. Apply migrations
python manage.py migrate
  1. 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()
  1. Add a valid password for your superuser
python manage.py changepassword syndeo@email.com
#Follow the django instructions
  1. Run it!
python manage.py runserver

Add support for more languages:

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:

Change the API Keys with yours

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 is apikey, replace it with yours, otherwise, you won't get the translation nor audio generation.
  • 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 are AWS_S3_ACCESS_KEY_ID and AWS_S3_SECRET_ACCESS_KEY, and uncomment them as well.
  • 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 are EMAIL_HOST_USER and EMAIL_HOST_PASSWORD, otherwise, you will have to active your account manually through the django admin panel, or remove these functions.

Run backend and frontend separately

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.

Showcase

Home

Login

Sign Up

Progress

Help for the progress section

Library

Study/reading section

Help for the study section

Vocabulary

Export PDF

PDF Sample

Config your Flashcard session

Flashcards

End your study session

Edit your profile

Demo

The demo is divided into 4 parts

part1.mp4
part2.mp4
part3.mp4
part4.mp4

Acknowledgements


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.

MIT