Giter VIP home page Giter VIP logo

itsalb3rt / cloudcsv Goto Github PK

View Code? Open in Web Editor NEW
49.0 3.0 15.0 3.39 MB

Open source web application for the storage of dynamic CSV files, user management, email notifications and more ...

Home Page: https://cloudcsv.netlify.app/

License: MIT License

JavaScript 20.35% HTML 0.61% Vue 78.69% Dockerfile 0.35%
vue vuetify javascript open-source csv vue-cli email-notifications phpmailer hacktoberfest

cloudcsv's Introduction

CloudCSV is a Open source web application for the storage all CSV file data into your data base from a friendly graphical interface for non-technical people, user management, email notifications and more ...

Give a Star! โญ

If you like this project or plan to use it in the future, please give it a star. Thanks ๐Ÿ™

Bugs and Feedback

For bugs, questions, and discussions, please use the Github Issues we have cool templates for you.

Contributing

For contributing, please see the following links:

We're glad to be supported by respected companies and individuals from several industries. See our Github Sponsors learn more.

Become a Github Sponsor โค๏ธ

Index

App interface

Create a table

Create a table

Main app Settings

Main Settings

Upload data

Upload data

Data Query

Data Query

โฌ† Back to Index

What can be done in this application

Auth

  • User Registration
  • Login
  • Password recovery (Via Email)

Data treatment

  • CSV file data upload
    • When you try upload new data file into a table, the app validate if the file have same columns of the table.
    • Define the file delimiter
  • Get a report of data upload

Settings

  • Multi language app
  • SMTP email configuration in app
  • Notification via email when user upload data or delete any record, you choose
  • User management for admins
  • Create, edit or delete dynamics tables data base for keep organize your data

โฌ† Back to Index

Development tools

Front-end

Back-end

Database

  • Postgres >= 9.6

โฌ† Back to Index

How to install on my own server

โ— Requirements

  • PHP >= 7.2
  • Composer >= 1.8
  • Postgres SQL >= 9.6
  • Vue-Cli >= 4.0
  • NodeJs >= 10.14

Front-end implementation

$ git clone https://github.com/itsalb3rt/cloudcsv.git
# After cd cloudcsv
$ npm install

All setings in .env file in root dir

This ref to you API implementation without the final slash ( / );

VUE_APP_BASE_URL_DEV=http://localhost/cloudcsv_api
VUE_APP_BASE_URL_PRO=http://localhost:8018/cloudcsv_api

Back-end implementation

PHP extensions required;

  • pdo_pgsql
$ git clone https://github.com/itsalb3rt/cloudcsv_api.git
#After cd cloudcsv_api
$ composer install

After run composer install go to system/config/config.php.ini file and put your postgres auth information.

Database Postgres

In the API dir, go to file in etc/init_db.sql copy this script an run in your database;

โš ๏ธIMPORTANT: Make a sure the dbname and prefix is same on you API config file and you database instance;

Example:

dbname=cloudcsv
prefix=public.

Please include the dot ( . ) in the final of the prefix


๐ŸŽ‰ Now you system is ready!


Docker

By default the App and the API is ready for used with docker;

App

git clone https://github.com/itsalb3rt/cloudcsv.git
cd cloudcsv

Now you can run the compose file;

docker-compose up -d

Afther this you only need run the API.

API

git clone https://github.com/itsalb3rt/cloudcsv_api.git
cd cloudcsv_api
# Install all the dependencies
make install-dependencies
# Run the API
docker network create traefik_proxynet && docker-compose up

Now go to http://localhost:8017 and is done ๐ŸŽ‰.


Extra information

Authentication will be based on Tokens, the token will be stored in the database and validated if the token corresponds to the users, the token must be self-generated every time the user logs on.

Into API/etc dir you have a Adobe XD project and UML dir StarUML project. feel free to modicate this and send you suggestion.


License

Copyright (C) 2022 by Albert Hidalgo. MIT License (see LICENSE for details).

cloudcsv's People

Contributors

dependabot[bot] avatar franciscoemanuel avatar itsalb3rt avatar jaybharadia avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

cloudcsv's Issues

Create SMTP configuration table

Is your feature request related to a problem? Please describe.

The problem is actually the SMTP configuration works with a config file, to avoid this, we need to create an SMTP configuration table to remove the config file.

Relate to #68

Use the email to create the username

Is your feature request related to a problem? Please describe.
Remove the username field from the login and register form and create the username from the email. Use the email to log in and keep the old behavior with the username into the login.

Describe the solution you'd like
Keep the column part of the user table, but don't force the user to create a username or remember this, after this implementation the mail is the key to login.

Add the APP name on title of the browser tab

Is your feature request related to a problem? Please describe.
Add CloudCSV to each route.

image

Describe the solution you'd like
I want this result ๐Ÿ‘‡
image

Be creative, you can use a library like vue-page-title or create a var inside the router and contact with the pageTitle property, you are free to solve this.

Describe alternatives you've considered
Be creative.

Docker Hub repository

Thank you for your IDEAs and software.

Did u consider pushing your image to docker hub?

I think you would have even more visibility through low installation effort

Thank you again!

Best regards

ERROR You are using Node v13.13.0, but vue-cli-service requires Node ^12.0.0 || >= 14.0.0.

Describe the bug
A clear and concise description of what the bug is.

I can't build from docker as suggested

To Reproduce
docker-compose up -d

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS] Linux, Ubuntu
  • Browser [e.g. chrome, safari] Chrome
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context

=> CACHED [cloud-csv-web 5/7] RUN npm install                                                         0.0s
 => CACHED [cloud-csv-web 6/7] COPY . .                                                                0.0s
 => ERROR [cloud-csv-web 7/7] RUN npm run build                                                        0.8s
------
 > [cloud-csv-web 7/7] RUN npm run build:
0.543
0.543 > [email protected] build /app
0.543 > vue-cli-service build
0.543
0.716  ERROR  You are using Node v13.13.0, but vue-cli-service requires Node ^12.0.0 || >= 14.0.0.
0.716         Please upgrade your Node version.
0.722 npm ERR! code ELIFECYCLE
0.722 npm ERR! errno 1
0.724 npm ERR! [email protected] build: `vue-cli-service build`
0.724 npm ERR! Exit status 1
0.724 npm ERR!
0.724 npm ERR! Failed at the [email protected] build script.
0.724 npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
0.734
0.734 npm ERR! A complete log of this run can be found in:
0.735 npm ERR!     /root/.npm/_logs/2024-06-13T02_27_22_546Z-debug.log
------
failed to solve: process "/bin/sh -c npm run build" did not complete successfully: exit code: 1

Impossible to create new table when running docker version

Describe the bug
When running docker version there is impossible to create table in the "System Setting" menu

To Reproduce
Steps to reproduce the behavior:

Perform operation for installing APP
$ git clone https://github.com/itsalb3rt/cloudcsv.git $ docker-compose up

Perform operation for installing API
$ git clone https://github.com/itsalb3rt/cloudcsv_api.git $ docker-compose up

  1. Create new user,
  2. login,
  3. navigate to "System Setting"
  4. Find the "Manage tables" sections
  5. Click "Create table" button
  6. Choose some columns names, types and name (ex 3.)
  7. Try to click save button

Expected behavior
Table should be created

Movie from reproducing issue and error that appears:

"DATA NO IN API DOCUMENTATION FORMAT CERRAR"
https://www.youtube.com/watch?v=beaBTLE94mc

Desktop (please complete the following information):

OS: Tried on both: Centos and Linux Mint
Browser, Firefox, Chrome

Use lower case only for the table and columns names

Describe the bug
When the user create a table, the name case is important, if the user use a UPPER case only, the API can't found the table.

https://github.com/itsalb3rt/cloudcsv_api/blob/392ddd1b90b25ac74336437ac5006b54d918a7bb/src/controllers/TablesController.php#L50

The same for the columns name:

https://github.com/itsalb3rt/cloudcsv_api/blob/392ddd1b90b25ac74336437ac5006b54d918a7bb/src/controllers/TablesController.php#L115

https://github.com/itsalb3rt/cloudcsv_api/blob/392ddd1b90b25ac74336437ac5006b54d918a7bb/src/controllers/TablesController.php#L94

To Reproduce
Steps to reproduce the behavior:

  1. Create a table and columns with upper case name
  2. Try to upload data for the table
  3. See error

Expected behavior
All the table names in lower case only, separate by underscore.

JSON response

Describe the bug
We need to set all the response like a JSON response with a specific structure, for example when the user creates a table, the API response with success string without more information

Posible structure

{
 "data": {},
 "pagination": {},
 "status": 200
}

Read the body message on the register when the user already exists

Is your feature request related to a problem? Please describe.
Need to show to the user the parse message from the response.

Describe the solution you'd like

The server response with

HTTP status 409

{"message":"User Already Exist"}

On file src/views/Auth/Register.vue we need to read the message property and validate if this exists;

this.$store.commit("snackbar/setSnackbar", {

You can do any like that;

const message = error.response.data && error.response.data.message ? error.response.data.message : 'We have an error, please try again in a few moment.';
this.$store.commit("snackbar/setSnackbar", {
 show: true,
 message: message,
 color: "error",
 top: true
});

Describe alternatives you've considered
None

docker-compose: Crashes on first access

Describe the bug
Docker Compose version 2.9.0
Docker version 20.10.17, build 100c70180f

When running docker-compose up, and accessing the website it hosts, it crashes with the following error:

cloudcsv-cloud-csv-web-1  | [Tue Aug 16 2022 10:39:34 GMT+0000 (UTC)]  "GET /" "Mozilla/5.0 (X11; Linux x86_64; rv:100.0) Gecko/20100101 Firefox/100.0"
cloudcsv-cloud-csv-web-1  | /usr/local/lib/node_modules/http-server/lib/core/index.js:246
cloudcsv-cloud-csv-web-1  |           stream = Readable.from(bytes)
cloudcsv-cloud-csv-web-1  |                             ^
cloudcsv-cloud-csv-web-1  | 
cloudcsv-cloud-csv-web-1  | TypeError: Readable.from is not a function
cloudcsv-cloud-csv-web-1  |     at serve (/usr/local/lib/node_modules/http-server/lib/core/index.js:246:29)
cloudcsv-cloud-csv-web-1  |     at fs.stat (/usr/local/lib/node_modules/http-server/lib/core/index.js:419:13)
cloudcsv-cloud-csv-web-1  |     at FSReqWrap.oncomplete (fs.js:171:5)

Use of dotenv file

Description

Need dotenv implementation on the API.

TO-DO

  • Database configuration
  • SMTP

Update dependencies

Is your feature request related to a problem? Please describe.
Update the dependencies to a compatible version.

Docker: Cannot neighter Register nor Login - action buttons seem to do nothing

Describe the bug

To Reproduce
Steps to reproduce the behavior:

  1. Perform operation for installing APP
    $ git clone https://github.com/itsalb3rt/cloudcsv.git $ docker-compose up

  2. Perform operation for installing API
    $ git clone https://github.com/itsalb3rt/cloudcsv_api.git $ docker-compose up

Expected behavior
Registration button works and redirect me to login or confirmation page
bug

I also recorded my attempt of registration and wrong behaviour of button:
https://youtu.be/fjMj0Lc9stM

Desktop (please complete the following information):

  • OS: Tried on both: Centos and Linux Mint
  • Browser, Firefox, Chrome

Create pagination

Is your feature request related to a problem? Please describe.
When you have a lot of data, the query load all the data.

Describe the solution you'd like
Create pagination on the backend and connect this to frontend

Describe alternatives you've considered
NONE

Additional context
NONE

Logged user and undefined properties when the user session expired or no exits

Describe the bug
The UI have some errors when the logged user session expired or no found

image

To Reproduce
Steps to reproduce the behavior:

  1. Login into the UI
  2. remove the user session

Expected behavior
Return the user to the login form

Screenshots

Desktop (please complete the following information):

  • OS: Mac OS
  • Browser chrome
  • Version 105.0.5195.125 (Official Build) (x86_64)

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.