A poster submission platform developed for Cryptober, an October cybersecurity awareness initiative by Cryptonite. This platform enables users to submit their cybersecurity awareness posters for review, making it easier to raise awareness during Cybersecurity Awareness Month.
Cryptober Poster Submission is a web application designed to streamline the submission and management of cybersecurity awareness posters. Users can upload their posters, which are stored securely on AWS S3, and submissions are managed with a Prisma-powered database for efficient tracking and administration. This project supports Cryptober’s mission of promoting cybersecurity awareness through visual, impactful posters.
- Poster Submission Form: Users can submit their posters directly through a simple form.
- Secure Storage: Uploaded posters are stored in AWS S3 for reliability and scalability.
- Database Integration: Uses Prisma ORM with a relational database to manage poster submissions.
- Error Handling: Validates submissions to ensure compliance with platform requirements.
- Backend: Node.js, Express.js
- Database: Prisma ORM with PostgreSQL
- File Storage: AWS S3 for secure and scalable file storage
- Hosting: AWS EC2
-
Clone the Repository
git clone https://github.com/sidmittal32/Crytober-Poster-Submission.git cd Crytober-Poster-Submission
-
Install Dependencies
npm install
-
Environment Variables
Create a.env
file in the root directory with the following variables:DATABASE_URL=your_database_url AWS_ACCESS_KEY_ID=your_aws_access_key_id AWS_SECRET_ACCESS_KEY=your_aws_secret_access_key AWS_BUCKET_NAME=your_s3_bucket_name AWS_REGION=your_aws_region
-
Run Prisma Migrations
npx prisma migrate dev
-
Start the Application
npm start
-
Access the Application
Open your browser and navigate tohttp://localhost:3000
(or whichever port is configured).
- Submit a Poster: Fill out the submission form, attaching your cybersecurity awareness poster.
- Admin Review: Submitted posters are stored in AWS S3, with entry details stored in a relational database managed by Prisma.