An Anime Discussion Forum Web Application built using Django. The app allows users to create accounts, log in, create posts, and engage in discussions about anime. It also provides a set of REST APIs for third-party developers to extract information about animes, users, and messages.
The Web Application is hosted on Vercel and the postgres database is hosted on Railway.
output.mp4
Watch the Demo Video on YouTube
- User Authentication: Users can create accounts, log in, and log out using Django's built-in authentication system.
- Forums and Topics: Users can create topics and posts within forums. Only logged-in users can create, edit, or delete their posts and replies. CRUD Functions implemented.
- User Engagement: Other users can view and engage in discussions on various topics.
- Models: The app used 4 models ( Users, Forums, Topics, Message ) to support CRUD operations.
- Frontend: The frontend is designed using CSS.
- Database: The application uses PostgreSQL, hosted online by Railway.
- Hosting: The web application is hosted on Vercel.
The application exposes several REST APIs that allow third-party developers to extract information from the system. These APIs provide information about animes, users, forums, topics, and messages.
- GET /api: Base endpoint.
- GET /api/forums: List all forums.
- GET /api/forums/:id: Retrieve a specific forum by ID.
- GET /api/topics: List all topics.
- GET /api/topics/:id: Retrieve a specific topic by ID.
- GET /api/users: List all users.
- GET /api/users/:id: Retrieve a specific user by ID.
- GET /api/messages: List all messages.
- GET /api/messages/:id: Retrieve a specific message by ID.
-
Clone the Repository:
https://github.com/Nithin1729S/AniTalk.git cd AniTalk
-
Install Dependencies:
pip install -r requirements.txt
-
Configure Database:
- Set up PostgreSQL and update the
DATABASES
setting insettings.py
with your database credentials. For better security use a .env file. Create a .env file in charoom directory with below details.
NAMEA='NAME_OF_DATABASE' USERA='USERNAME' PASSWORDA='PASSWORD' HOSTA='HOST_ADDRESS' PORTA='PORT_NUMBER'
- Or Use the local sqlite3 database by commenting out the above instruction related code in
settings.py
and uncomment sqlite3 related code.
- Set up PostgreSQL and update the
-
Run Migrations:
python manage.py migrate
-
Create a Superuser:
python manage.py createsuperuser
-
Run the Development Server:
python manage.py runserver
You can find the Docker image for this project on Docker Hub:
- Using the Image from Docker Hub:
docker pull nithin1729s/anitalk:latest docker run -p 8000:8000 nithin1729s/anitalk:latest
- Access the Web App: Open your web browser and go to
http://127.0.0.1:8000/
after installing the application. - Or visit the live website.
- Use the APIs: Use the endpoints listed above to access the REST APIs.
- Ex: Use
http://127.0.0.1:8000/api/topics
if installed on a local machine to get a json data of all topics currently in the webapp.