A collaborative project to develop a secure and dynamic online voting system for presidential elections. Built with Angular, Node.js, and MongoDB, the system ensures transparency, security, and a smooth voting process.
Follow these steps to set up the project on your local machine.
git clone https://github.com/MeDjb10/Online-Election
cd Online-Election
Go to the frontend folder and install the required dependencies:
cd OnlineElection-frontend
npm install
Navigate to the backend folder and install the backend dependencies:
cd ../OnlineElection-backend
npm install
Ensure that MongoDB is installed and running on your machine, or use MongoDB Atlas for a cloud-based setup.
- Start MongoDB on port
27017
locally or configure your MongoDB Atlas connection string. - Ensure your database has the appropriate collections.
Import any required data (e.g., candidates or voter records) into the MongoDB database using tools like MongoDB Compass or the CLI.
Example of importing data via the command line:
mongoimport --db ElectionDB --collection candidates --file candidates.json
After setting up the database and installing dependencies, follow these steps to start the application:
Navigate to the backend folder and start the server:
npm start
The server will run on http://localhost:3000.
Navigate to the frontend folder and run:
ng serve
Visit http://localhost:4200 in your browser to access the application.
- Authentication System: Login and secure access for both voters and administrators.
- Admin Dashboard: Manage elections, candidates, and monitor progress.
- Voting System: Secure and private voting for users.
- Live Results: Real-time election results visible to authorized users.
- Angular: Frontend framework for creating dynamic and responsive user interfaces.
- Node.js: Backend runtime for scalable and fast server-side applications.
- MongoDB: NoSQL database for storing election and user data.
- Compodoc: For generating frontend documentation.
- Swagger: For generating backend API documentation.
Contributions are welcome! Fork the repository, submit a pull request, or open an issue for suggestions and bug reports.
For any questions or inquiries, feel free to contact us via email at Med Amine Jabou. Med Taleb Mouelhi.