T-Plot
Timeline web app
T-Plot is a web app which can be used to create timelines as a list of events, these are used to create a perfectly scaled PDF of the timeline.
The user sets the scale and layout settings they want, and the app automatically handles the correct positioning of the events on PDF.
Created to demonstrate the use of the web framework Django, it features a fully functional CI/CD pipeline that deploys it on AWS Elastic Beanstalk.
The current release up and running here.
Implemented Features
- User registration, login and logout
- Create, read, update and delete timeline information in a Postgres database running on AWS RDS
- Permissions to ensure users can only view their own database records
- Timeline Types
- Date and Time using events ordered by calendar and clock time units including years, months, weeks, days, hours, minutes and seconds
- Age using events ordered by age in years and months
- Historical using years BC to AD
- Scientific using thousands, millions and billions of years in the past and future
- Timeline Views
- Web based timeline showing events in order
- PDF timeline showing events in order positioned to time scale
- Set timeline scale
- Control PDF layout
- AI Assist
- Request ChatGPT find potential events you add to your timeline
- Review the results and select which events to add
- User Guide
- Getting started guides for common tasks
- Reference guides explaining all TPlot's objects, values and settings
- High availability using AWS EC2 instances in an Auto Scaling Group with a Load Balancer
Project Road Map
- Bulk event operations
- Delete
- Set event area
- Assign tags
- Slide show view
- Image Support
- Sharing and collaboration
- Improved registration
- Password reset
- Validate account using email
- Sign up with Google, GitHub etc
CI/CD
This project uses 3 workflows which showcase some of the possibilities if GitHub Actions.
- Manually triggered workflow to create or terminate the Elastic Beanstalk production environment.
- Reusable workflow to test if the production environment is up and running.
- Continuous Integration / Continuous Deployment pipeline that tests the code before integrating it with the main branch. Then it will deploy to the production environment if it is running.
- Automated setup and terminate of access through AWS Route53 and HTTPS using Boto3.
Author
@L7G9
Acknowledgements
All these resources were used to create this project. Thank you to all those who took the time and effort to share.