mirror of
https://github.com/arnaucube/commonroutesServer.git
synced 2026-02-27 21:16:41 +01:00
pagination
This commit is contained in:
120
README.md
120
README.md
@@ -1,6 +1,7 @@
|
||||
#CollectiveCar app
|
||||
# CarsInCommonServer
|
||||
|
||||
frontend app code: https://github.com/idoctnef/collectivecarApp
|
||||
frontend app code: https://github.com/idoctnef/carsincommonApp
|
||||
images server: https://github.com/arnaucode/goImgServer
|
||||
|
||||
**Backend:**
|
||||
Nodejs + Express + MongoDB
|
||||
@@ -11,121 +12,16 @@ frontend app code: https://github.com/idoctnef/collectivecarApp
|
||||
|
||||
|
||||
|
||||
##To Do List:
|
||||
**Backend and Frontend:**
|
||||
**To Do Backend and Frontend:**
|
||||
```
|
||||
-signup user --> done
|
||||
-signup unique username --> done
|
||||
-loggin user --> done
|
||||
-update user profile --> done
|
||||
-create new travel --> done
|
||||
-update travel --> done
|
||||
-delete travel --> done
|
||||
-create offeringCar --> done
|
||||
-update offeringCar
|
||||
-delete offeringCar --> done
|
||||
-create askingForTravel (needtravel) --> done
|
||||
-update askingForTravel
|
||||
-delete askgingForTravel --> done
|
||||
-create askingPackage (need transport package) --> done
|
||||
-update askingPackage
|
||||
-delete askgingPackage --> done
|
||||
-user joins a car --> done
|
||||
-user offer car to a travel --> done
|
||||
-user offer car to a askingpackage --> done
|
||||
-user unjoins a car --> done
|
||||
-user unoffer car to a travel --> done
|
||||
-user unoffer car to a askingpackage --> done
|
||||
-comment publication(car, travel, package) --> done
|
||||
-valorating users system --> done
|
||||
|
||||
-passed dates not shown from server --> done
|
||||
-don't allow to add travels with passed date (on frontend and backend)
|
||||
|
||||
-acabar de fer robust quan esborres un travel
|
||||
|
||||
-GUI admin page
|
||||
|
||||
-UX design
|
||||
-interface graphic design
|
||||
-icons
|
||||
-api more secure and robust (comprovations, hash passwords, ...)
|
||||
|
||||
-web page (webapp) --> (de moment es pot penjar la app en versió web tal qual,
|
||||
que es podrà fer servir des d'un navegador com si fós la app)
|
||||
|
||||
-es veu el telèfon dels users?
|
||||
-com evitem q algú xungu es registri a la app i vegi els viatges i info dels users?
|
||||
|
||||
|
||||
-falta acabar notification system
|
||||
quan mires les notificacions, que avisi al server q ja les has vist, i que el server les marqui com a llegides
|
||||
link a les notificacions
|
||||
acabar de mirar q a la app, quan agafa els users del server, tingui actualitzades les notificacions del user al menu
|
||||
- pagination search
|
||||
- https (tls/ssl)
|
||||
```
|
||||
|
||||
|
||||
--------------------
|
||||
####**PARA LA BASE DE DATOS** [para definir como queremos q esté estructurado, pensando en las funcionalidades que queremos tener]:
|
||||
|
||||
|
||||
```
|
||||
var userSchema = new Schema({
|
||||
username: { type: String },
|
||||
password: { type: String },
|
||||
description: { type: String },
|
||||
avatar: { type: String },
|
||||
mail: { type: String },
|
||||
phone: { type: String },
|
||||
telegram: { type: String }
|
||||
})
|
||||
var travelSchema = new Schema({
|
||||
title: { type: String },
|
||||
description: { type: String },
|
||||
owner: { type: String },
|
||||
from: { type: String },
|
||||
to: { type: String },
|
||||
date: { type: Date },
|
||||
periodic: { type: Boolean },
|
||||
generateddate: { type: Date },
|
||||
seats: { type: Number },
|
||||
package: { type: Boolean },
|
||||
icon: { type: String },
|
||||
phone: { type: Number },
|
||||
telegram: { type: String },
|
||||
collectivized: { type: Boolean },
|
||||
modality: { type: String } //if is an offering travel or asking for travel
|
||||
})
|
||||
var joinSchema = new Schema({
|
||||
travelId: { type: String },
|
||||
joinedUserId: { type: String },
|
||||
joinedUsername: { type: String },
|
||||
acceptedUserId: { type: String },
|
||||
joinedAvatar: { type: String }
|
||||
#### RESOURCES using:
|
||||
|
||||
});
|
||||
var commentSchema = new Schema({
|
||||
travelId: { type: String },
|
||||
commentUserId: { type: String },
|
||||
commentUsername: { type: String },
|
||||
comment: { type: String },
|
||||
commentAvatar: { type: String }
|
||||
|
||||
});
|
||||
```
|
||||
--------------------
|
||||
|
||||
|
||||
####**RESOURCES using**:
|
||||
|
||||
car icons [http://www.flaticon.com/packs/transportation-7](http://www.flaticon.com/packs/transportation-7)
|
||||
|
||||
css para la app: matterializeCSS [http://materializecss.com/](http://materializecss.com/)
|
||||
|
||||
avatars users: [http://www.flaticon.com/packs/animal-icon-collection](http://www.flaticon.com/packs/animal-icon-collection)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
mirar per fer hash de passwords https://www.npmjs.com/package/bcrypt-nodejs
|
||||
initial avatars users: [http://www.flaticon.com/packs/animal-icon-collection](http://www.flaticon.com/packs/animal-icon-collection)
|
||||
|
||||
@@ -3,6 +3,7 @@ module.exports = {
|
||||
'database': process.env.MONGO_DSN,*/
|
||||
'secret': 'secretfortoken',// local version
|
||||
'database': 'mongodb://localhost/carsincommon',
|
||||
"port" : process.env.PORT || 3000
|
||||
"port" : process.env.PORT || 3000,
|
||||
"pageSize": 20
|
||||
|
||||
};
|
||||
|
||||
@@ -4,6 +4,8 @@ var userModel = mongoose.model('userModel');
|
||||
var notificationModel = mongoose.model('notificationModel');
|
||||
var travelModel = mongoose.model('travelModel');
|
||||
|
||||
var config = require('../config');
|
||||
var pageSize=config.pageSize;
|
||||
|
||||
/* */
|
||||
var jwt = require('jsonwebtoken'); // used to create, sign, and verify tokens
|
||||
@@ -21,8 +23,8 @@ exports.searchByString = function (req, res) {
|
||||
userModel.find({
|
||||
username: new RegExp(req.params.searchstring, "i")
|
||||
})//perquè retorni tots els objectes que continguin l'string sense necessitat de que sigui exactament la mateixa string
|
||||
.limit(Number(req.query.pageSize))
|
||||
.skip(Number(req.query.pageSize) * Number(req.query.page))
|
||||
.limit(pageSize)
|
||||
.skip(pageSize * Number(req.query.page))
|
||||
.lean()
|
||||
.select('username avatar')
|
||||
.exec(function (err, users) {
|
||||
@@ -34,8 +36,8 @@ exports.searchByString = function (req, res) {
|
||||
{title: new RegExp(req.params.searchstring, "i")}
|
||||
]
|
||||
})//perquè retorni tots els objectes que continguin l'string sense necessitat de que sigui exactament la mateixa string
|
||||
.limit(Number(req.query.pageSize))
|
||||
.skip(Number(req.query.pageSize) * Number(req.query.page))
|
||||
.limit(pageSize)
|
||||
.skip(pageSize * Number(req.query.page))
|
||||
.lean()
|
||||
.select('title from to date type')
|
||||
.exec(function (err, travels) {
|
||||
|
||||
@@ -5,8 +5,9 @@ var notificationModel = mongoose.model('notificationModel');
|
||||
var travelModel = mongoose.model('travelModel');
|
||||
var commentModel = mongoose.model('commentModel');
|
||||
|
||||
var config = require('../config');
|
||||
var pageSize=config.pageSize;
|
||||
//GET
|
||||
var pageSize=20;
|
||||
exports.getAllTravels = function(req, res) {
|
||||
//get travels with futures dates ($gte - greater than and equal than)
|
||||
travelModel.find({date: {$gte: new Date()}})
|
||||
|
||||
@@ -4,6 +4,8 @@ var userModel = mongoose.model('userModel');
|
||||
var notificationModel = mongoose.model('notificationModel');
|
||||
var travelModel = mongoose.model('travelModel');
|
||||
|
||||
var config = require('../config');
|
||||
var pageSize=config.pageSize;
|
||||
|
||||
/* */
|
||||
var jwt = require('jsonwebtoken'); // used to create, sign, and verify tokens
|
||||
@@ -153,8 +155,8 @@ exports.login = function(req, res) {
|
||||
//GET - Return all Users in the DB
|
||||
exports.getAllUsers = function(req, res) {
|
||||
userModel.find()
|
||||
.limit(Number(req.query.pageSize))
|
||||
.skip(Number(req.query.pageSize) * Number(req.query.page))
|
||||
.limit(pageSize)
|
||||
.skip(pageSize * Number(req.query.page))
|
||||
.exec(function(err, users) {
|
||||
if (err) return res.send(500, err.message);
|
||||
res.status(200).jsonp(users);
|
||||
|
||||
Reference in New Issue
Block a user