feat: finish
This commit is contained in:
parent
a458a8a103
commit
ba3c4e2657
10 changed files with 60 additions and 38 deletions
3
.env
3
.env
|
|
@ -1 +1,2 @@
|
|||
JWT_SECRET=supersekretnyklucz123
|
||||
JWT_SECRET=supersekretnyklucz123
|
||||
MONGODB_CREDENTIALS=mongodb://root:example@host.docker.internal:27017/mizuki?authSource=admin
|
||||
|
|
@ -2,10 +2,8 @@ FROM node:20
|
|||
|
||||
WORKDIR /app
|
||||
|
||||
COPY package*.json ./
|
||||
RUN npm install
|
||||
|
||||
COPY . .
|
||||
RUN npm install
|
||||
|
||||
EXPOSE 3000
|
||||
|
||||
|
|
|
|||
29
README.md
Normal file
29
README.md
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
## Projekt zaliczeniowy z laboratorium "Szkielety Programistyczne w Aplikacjach Internetowych"
|
||||
|
||||
## Tematyka projektu: Aplikacja do przechowywania plików (File storage app)
|
||||
|
||||
## Autor: Kacper Staroń
|
||||
|
||||
## Funkcjonalności:
|
||||
- uwierzytelnianie
|
||||
- rejestracja
|
||||
- dodawanie plików
|
||||
- usuwanie plików, zmiana ich nazwy
|
||||
- zmiana danych logowania
|
||||
|
||||
## Narzędzia i technologie:
|
||||
- strona serwera: Node.js + Express (web server) + Joi (walidacja) + Multer (middleware do obsługi uploadowania plików)
|
||||
- baza danych: MongoDB + Mongoose (silnik bazy danych)
|
||||
- strona klienta: Vite, Vue3, PrimeVue (komponenty)
|
||||
- konteneryzacja: Docker
|
||||
|
||||
## Wymagania
|
||||
|
||||
Wersje programów wykorzystane do tworzenia aplikacji (aplikacja nie została przetestowana z kompatybilnością wcześniejszych wersji):
|
||||
- MongoDB 6.0
|
||||
- Node.JS 20
|
||||
- Docker 28.2.2
|
||||
|
||||
## Uruchomienie
|
||||
1. W folderze aplikacji należy uruchomić polecenie `docker compose up` aby zbudować i uruchomić kontenery aplikacji.
|
||||
2. Należy uruchomić `http://localhost:5173/`.
|
||||
6
db/db.js
6
db/db.js
|
|
@ -2,11 +2,11 @@ const mongoose = require('mongoose');
|
|||
|
||||
const connectDB = async () => {
|
||||
try {
|
||||
mongoose.connect('mongodb://root:example@localhost:27017/your-db-name?authSource=admin')
|
||||
mongoose.connect(process.env.MONGODB_CREDENTIALS);
|
||||
|
||||
console.log('✅ MongoDB connected');
|
||||
console.log('MongoDB connected');
|
||||
} catch (err) {
|
||||
console.error('❌ MongoDB connection error:', err.message);
|
||||
console.error('MongoDB connection error:', err.message);
|
||||
process.exit(1);
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -13,5 +13,26 @@ services:
|
|||
MONGO_INITDB_ROOT_USERNAME: root
|
||||
MONGO_INITDB_ROOT_PASSWORD: example
|
||||
|
||||
backend:
|
||||
image: mizuki/backend
|
||||
container_name: backend
|
||||
restart: always
|
||||
ports:
|
||||
- "3000:3000"
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
env_file: ".env"
|
||||
|
||||
frontend:
|
||||
image: mizuki/frontend
|
||||
container_name: frontend
|
||||
restart: always
|
||||
ports:
|
||||
- "5173:5173"
|
||||
build:
|
||||
context: ./frontend/
|
||||
dockerfile: Dockerfile
|
||||
|
||||
volumes:
|
||||
mongo-data:
|
||||
|
|
|
|||
|
|
@ -1,8 +0,0 @@
|
|||
const Joi = require('joi');
|
||||
|
||||
const loginSchema = Joi.object({
|
||||
username: Joi.string().required(),
|
||||
password: Joi.string().required()
|
||||
});
|
||||
|
||||
module.exports = { loginSchema };
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
const Joi = require('joi');
|
||||
|
||||
const passwordChangeSchema = Joi.object({
|
||||
oldPassword: Joi.string().required(),
|
||||
newPassword: Joi.string().required()
|
||||
});
|
||||
|
||||
module.exports = { passwordChangeSchema };
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
function userInfoDto(user, avatar = null) {
|
||||
return {
|
||||
username: user.username,
|
||||
avatar: avatar || null
|
||||
};
|
||||
}
|
||||
|
||||
module.exports = { userInfoDto };
|
||||
|
|
@ -2,11 +2,9 @@ FROM node:20
|
|||
|
||||
WORKDIR /app
|
||||
|
||||
COPY package*.json ./
|
||||
COPY . .
|
||||
RUN npm install
|
||||
|
||||
COPY . .
|
||||
EXPOSE 5173
|
||||
|
||||
EXPOSE 3000
|
||||
|
||||
CMD ["node", "index.js"]
|
||||
CMD ["npm", "run", "dev", "--", "--host", "0.0.0.0"]
|
||||
3
index.js
3
index.js
|
|
@ -11,7 +11,7 @@ connectDB();
|
|||
|
||||
app.use(express.json());
|
||||
app.use(cors({
|
||||
origin: "http://localhost:5173",
|
||||
origin: "*",
|
||||
credentials: true,
|
||||
allowedHeaders: ["Content-Type", "Authorization"]
|
||||
}));
|
||||
|
|
@ -20,7 +20,6 @@ app.use('/api/user', require('./controllers/auth.controller'));
|
|||
app.use('/api/file', require('./controllers/file.controller'));
|
||||
app.use('/f', require('./controllers/serve.controller'));
|
||||
|
||||
// Start server
|
||||
app.listen(PORT, () => {
|
||||
console.log(`Server running at http://localhost:${PORT}`);
|
||||
});
|
||||
Loading…
Reference in a new issue