Coder Social home page Coder Social logo

davidesgrazzutti / swe-project Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sweg-software-engineering-group/translatify

0.0 0.0 0.0 804 KB

Backoffice for SWE 2022-2023 Project for Computer Science B.Sc in Padua

JavaScript 0.48% TypeScript 98.68% CSS 0.34% HTML 0.50%

swe-project's Introduction

Translatify

Translatify is the SWE project written in TypeScript, React using AWS technology, realized as part of the Software Engineering Project course at the University of Padua, in 2022-2023, supervised by Zero12 S.r.l.


Table of Contents
  1. About The Project
  2. Getting Started
  3. Overview

About The Project

Hosted on Amazon Web Services this software offers a multiplatform backend where an organization can add and translate texts in different languages and an API library to allow to retrive the texts in the desired language and use them on their own Websites and Web Applications as pleased.

Backoffice

This repo contains the main software with the backoffice frontend part that run under the usage of our AWS APIs. It features all the lambdas functions available. The data is stored in dynamoDB. Cognito is used to secure all the functions that are used by the translating process for the organization, while the other funcions to retrive the texts are public. A Postman json is included with the list of all the different functions available.

For more examples, please refer to the Documentation, only available in italian at the moment To refer to our API repo, please follow the Link

Built With

  • AWS
  • React
  • Node
  • TS

(back to top)

Getting Started

Below is an example of how you can instruct your audience on installing and setting up your app. This template doesn't rely on any external dependencies or services.

Prerequisites

Make sure you have the latest version of npm.

  • npm
    npm install npm@latest -g

Installation

  • Clone the repository
  • Add a .env file containing the authentication token to be used in the API calls: REACT_APP_API_KEY="" (contact us for obtaining the key to type into that variable)
  • It's advised to wait for a while to have the API from AWS properly loading data inside pages after the first run
  • Install dependencies with npm install
  • Run the app with npm start

(back to top)

Overview

The application is a multi-tenant webapp that allows users to translate text from one language to another. The application is composed of a frontend and a backend. The frontend is a React application that communicates with the backend through a REST API. The backend is a serverless application that uses AWS Lambda functions to handle requests and DynamoDB to store data. There are three types of users:

  • Guest: a user that is not logged in. A guest can only access the login and registration pages.
  • User: a user that is logged in. A user can view the texts to translate and is associated with a single tenant.
  • Admin: a user that is logged in. An admin can view the texts to translate and has a single tenant associated. He can also manage his Tenant setting, handling Tenant users and languages, approve or reject the translations and manage the text categories.
  • SuperAdmin: a user that is logged in. A superadmin can have multiple tenants and for each one can manage users and languages associated.

Features

  • Login: a user can log in using his credentials.
  • Registration: a user can register to the application.
  • Texts: a user can view the texts to translate.
  • Translation: a user can translate a text from one language to another.
  • Tenant: an Admin can manage his Tenant settings.
  • Tenant users: an Admin can manage his Tenant users.
  • Tenant languages: an Admin can manage his Tenant languages.
  • Tenant categories: an Admin can manage his Tenant categories.
  • Tenant translations: an Admin can approve or reject the translations.
  • SuperAdmin: a SuperAdmin can manage multiple tenants.
  • SuperAdmin users: a SuperAdmin can manage users for each tenant.
  • SuperAdmin languages: a SuperAdmin can manage languages for each tenant.

Technologies

  • React: a JavaScript library for building user interfaces.
  • TypeScript: a programming language developed and maintained by Microsoft.
  • AWS Lambda: a serverless computing service provided by Amazon Web Services.
  • AWS DynamoDB: a fully managed proprietary NoSQL database service that supports key-value and document data structures.
  • AWS API Gateway: a fully managed service that makes it easy for developers to create, publish, maintain, monitor, and secure APIs at any scale.
  • AWS Cognito: a simple user identity and data synchronization service that helps you securely manage and synchronize app data for your users across their mobile devices.
  • AWS Amplify: a set of tools and services that enables mobile and front-end web developers to build secure, scalable full stack applications, powered by AWS.

Test

Run npm run test to run the right command set as script to get MUI/Axios modules working properly. Also, click "a" to run all tests.

swe-project's People

Contributors

davide-milan avatar gabrielrovesti avatar andrea828 avatar davidesgrazzutti avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.