Caution
Some features of TCG Manager are still under development and may not be fully functional. Stay tuned for updates!
TCG Manager is a web application designed to help users manage their trading card collections efficiently. It provides features for user authentication, card management, and profile customization.
- User Authentication: Register, log in, and log out securely using JWT-based authentication.
- Card Management: Add, view, update, and delete trading cards in your collection.
- Profile Management: Update user profile information and customize the application theme.
- Responsive Design: Optimized for both desktop and mobile devices.
- Dark/Light Theme: Switch between dark and light themes for better user experience.
- Backend: Flask, Flask-SQLAlchemy, Flask-Migrate, Flask-JWT-Extended
- Frontend: HTML, CSS (Bootstrap), JavaScript
- Database: MySQL
- Containerization: Docker, Docker Compose
- Docker and Docker Compose installed on your machine.
-
Clone the repository:
git clone <repository-url> cd tgc
-
Create a
.envfile: Copy the.env.examplefile and update the environment variables as needed.cp .env.example .env
-
Build and start the application:
docker-compose up --build
-
Access the application:
- Web application: http://localhost:8081
- phpMyAdmin: http://localhost:8080
- Register: Create a new account.
- Login: Log in to access your card collection.
- Logout: Securely log out of your account.
- Add Card: Add a new card to your collection.
- View Cards: Browse your card collection.
- Edit Card: Update card details.
- Delete Card: Remove a card from your collection.
- Update Profile: Modify your username, email, or password (feature under development).
- Theme Customization: Switch between light and dark themes.
tgc/
├── app/
│ ├── static/ # Static files (CSS, JS, images)
│ ├── templates/ # HTML templates
│ ├── __init__.py # Flask app initialization
│ ├── config.py # Application configuration
│ ├── models.py # Database models
│ ├── routes.py # API routes
│ ├── users.py # User-related logic
│ ├── cards.py # Card-related logic
├── migrations/ # Database migrations
├── .env # Environment variables
├── docker-compose.yaml # Docker Compose configuration
├── Dockerfile # Dockerfile for the application
├── requirements.txt # Python dependencies
└── README.md # Project documentation
POST /auth/register: Register a new user.POST /auth/login: Log in and receive a JWT token.POST /auth/logout: Log out and invalidate the JWT token.
GET /cards: Retrieve all cards for the logged-in user.GET /cards/<cardId>: Retrieve details of a specific card.POST /cards/add: Add a new card.PUT /cards/update/<cardId>: Update details of a specific card.DELETE /cards/delete/<cardId>: Delete a card.
GET /profile: Retrieve the logged-in user's profile.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Commit your changes and push the branch.
- Open a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.