Alpha Apartments is a comprehensive web portal designed to streamline apartment management and communication for tenants and non-tenants (technicians). The platform features user-friendly interfaces and robust backend support to ensure a seamless experience.
- Google OAuth login
- User email/password registration
- User email/password login
- User logout
- JWT Cookie authentication
- View all tenants' profiles
- View all non-tenants' (technicians) profiles
- Get the logged-in user's profile
- Update user profile
- Upload image for user avatar
- Add apartment
- View all apartments for the logged-in user
- List all issues
- List all assigned issues
- View all issues created by the logged-in user
- Create a new issue for a specified apartment
- View details of an issue
- Update an issue
- Delete an issue
- Create a new report for another tenant
- View reports created about the logged-in user
- Note: First report serves as a warning, and if a user accumulates 5 reports, the account will be deactivated
- Create a rating for non-tenants (technicians)
- Display average rating for technicians
- List all posts
- Get list of posts by tags
- Get top posts (most replies and content views)
- List popular tags (most used tags)
- Create a new post
- List logged-in user's posts
- View details of a post
- Update a post
- Bookmark a post
- Unbookmark a post
- View list of bookmarked posts
- Add a reply to a post
- Get all replies for a post
- Upvote a post
- Downvote a post
- Django: Web framework
- Django REST Framework: API development
- PostgreSQL: Database
- Celery: Asynchronous task queue
- Redis: Message broker for Celery
- MinIO: Object storage for static and media files
- NextJS: Frontend Web Framework
- Heroicons: Icon Library
- TailwindCSS: CSS Utility Class Package
- Redux: Statement Management
- Zod: Data and Schema Validation
- Axios: HTTP Request and Response Package
The application is containerized using Docker for easy deployment and management. Below is a brief overview of the Docker setup:
- Services:
server
: Django backendclient
: NextJS frontendpostgres
: PostgreSQL databaseminio
: MinIO object storagemailpit
: Mail server for developmentredis
: Redis message brokerceleryworker
: Celery workercelerybeat
: Celery beat schedulerflower
: Celery monitoring toolnginx
: Reverse proxy server
local_postgres_data
local_postgres_data_backups
local_minio_data
local_mailpit_data
local_redis_data
local_logs_nginx
alpha_apartments_network
- Docker and Docker Compose installed on your system
-
Clone the repository:
git clone https://github.com/DataRohit/Django-Apartment-Management.git cd alpha-apartments
-
Build and start the container:
docker-compose -f docker-compose.local.yml up --build
-
Access the application:
- Backend:
http://localhost:8080/api/v1/
- Frontend
http://localhost:8080/
- Swagger Redoc:
http://localhost:8080/api/v1/redoc/
- Swagger Playground:
http://localhost:8080/api/v1/swagger/
- Minio:
http://localhost:9090/
- Mailpit:
http://localhost:8025/
- Flower:
http://localhost:5555/
- Backend:
This project is licensed under the MIT License - see the LICENSE file for details.
For any inquiries or support, please reach out to [email protected].
Made with ❤️ by Rohit Vilas Ingole