Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/wojciechprusaczyk/events-app


https://github.com/wojciechprusaczyk/events-app

django javascript nodejs postgresql python reactjs rest-api sass scss web-app web-application web-development

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

        

[![Python](https://img.shields.io/badge/python%20%5E3.11.0-yellow?style=for-the-badge&logo=python)](https://www.python.org/downloads/)
[![NodeJS](https://img.shields.io/badge/nodejs%20%5E18.20.3-gray?style=for-the-badge&logo=nodedotjs)](https://nodejs.org/en/download/prebuilt-installer)
[![Git](https://img.shields.io/badge/git-lightgray?style=for-the-badge&logo=git)](https://git-scm.com/downloads)
[![Git](https://img.shields.io/badge/PostgreSQL%20%5E16.3-white?style=for-the-badge&logo=postgresql)](https://www.postgresql.org/download/)
[![ReactJS](https://img.shields.io/badge/React.js-gray?style=for-the-badge&logo=react)](https://react.dev/)
[![Django](https://img.shields.io/badge/Django-darkgreen?style=for-the-badge&logo=django)](https://docs.djangoproject.com/en/5.0/)

# Eventful :fire:
Service for creating and managing events.
### Key features:
- Event schedule :calendar:
- Reminders :calling:
- Event map :pushpin:
- Useful informations about event :page_with_curl:
- Local events browser :mag:

### Roadmap

1. [x] Name, logo, deciding about tech stack
2. [x] Registration
3. [x] Signing in
4. [x] Creating event (mostly basic info)
5. [x] Event edition
6. [x] Creating segments
7. [x] Segment edition
8. [x] Joining and sharing events
9. [ ] Notification system, user acceptations.
10. [ ] Event page (schedule, important infos)
11. [ ] Galleries (for events and segments)
12. [ ] Event map
13. [ ] Mobile app

# Installation

1. Zainstaluj całe potrzebne oprogramwoanie.
2. Pobierz za pomocą IDE najświeższe repozytorium z githuba.
3. Utwórz w PostgreSQL (za pomocą PgAdmin) pustą bazę danych o nazwie "events-app".
4. Upewnij się, że masz odpowiedni connection string w backend/backend/settings.py (zmienna "DATABASES")
5. Wymigruj całą bazę danych do PostgreSQL.
6. Zainstaluj potrzebne biblioteki JS
```commandline
cd .\frontend\
npm install
```
7. Skompiluj pliki JS i CSS.
8. Jeśli gdzieś wystąpią błędy, to możliwe że nie posiadasz zainstalowanych bibliotek. Sprawdź komunikat o błędzie i zainstaluj wymagane biblioteki.

### Migracja bazy danych
Należy ją wykonać przy każdej zmianie w strukturze bazy danych.
```commandline
cd .\backend\
python manage.py makemigrations
python manage.py migrate
```
### Kompilacja plików JS i CSS
Należy wykonać przy każdej zmianie w plikach JS, czy CSS.
```commandline
cd .\frontend\
npm run build
```

### Uruchomienie lokalknego serwera deweloperskeigo
```commandline
cd .\backend\
python manage.py runserver
```

### Wypychanie lokalnych zmian na GitHuba
Zalecam jednak wykonanie tych działań z pomocą wbudowanego w IDE narzędzia do zarządzania projektem w GIT.
```commandline
git add .
git commit -m "Komentarz odnośnie wykonanych prac"
git push
```

### Otwieranie konsoli PostgreSQL
```commandline
python manage.py dbshell
```

### Usuwanie wszystkich tabel
```commandline
DO $$ DECLARE
r RECORD;
BEGIN
FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = current_schema()) LOOP
EXECUTE 'DROP TABLE IF EXISTS ' || quote_ident(r.tablename) || ' CASCADE';
END LOOP;
END $$;
```

### Wstępne dane
Aby załadować wstępne dane należy użyć poniższej komendy
```commandline
cd .\backend\
python manage.py loaddata initial_data
```
Utworzy to automatycznie użytkownika:
Username: john_doe
Email: [email protected]
Password: 71WF@IP4